VB6: FreeImage图像二值化

前端之家收集整理的这篇文章主要介绍了VB6: FreeImage图像二值化前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一、FreeImage简介:

FreeImage是一个C语言图像处理库,它免费、开源、跨平台,且简单易用。我使用的版本是FreeImage 3.15.3

二、FreeImage使用注意事件:

1.VB6使用时要把FreeImage.dll和MFreeImage.bas(在Wrapper\VB6\mfreeimage目录)拷到开发目录下。
2. 加载图片:建议使用FreeImage_LoadEx(图片文件名),它对FreeImage_Load进行了封装,可以打开任意支持图片文件

3. 在图像处理完成后,要用FreeImage_UnloadEx(图像句柄)释放分配的内存。

三、图像二值化:

调用FreeImage_Threshold(图像句柄,阈值)对图像进行二值化处理

函数对灰度图(256色)直接处理和16位色(24位色,32位色)会先在dll内部转换成灰度图,然后再进行二值化处理

四、示例:

建立一个工作目录,我的是C:\Tools\ImageProcess\FreeImage\Wrapper\VB6\test
在目录下随便放一个bmp图片文件,更名为 "test.bmp"。
在目录下建一个VB6标准EXE工程,并保存。
1. 删除Form1
2. 在工程中添加MFreeImage.bas
3. 添加空模块,加入以下代码
  1. Option Explicit
  2.  
  3. Public Sub main()
  4. Dim dib As Long
  5. Dim dib2 As Long
  6. Dim szFile As String
  7. '' 打开测试文件
  8. szFile = "test.bmp"
  9. dib = FreeImage_LoadEx(szFile)
  10. If dib = 0 Then
  11. Debug.Print "Error file format: ",szFile
  12. Exit Sub
  13. End If
  14. '' 图像二值化,<37的设成0,≥37的设成1
  15. dib2 = FreeImage_Threshold(dib,37)
  16. '' 保存二值化后的图像
  17. Call FreeImage_Save(FIF_TIFF,dib2,"result.tif")
  18. '' 释放图像资源
  19. Call FreeImage_UnloadEx(dib2)
  20. Call FreeImage_UnloadEx(dib)
  21. End Sub
运行程序,就可以在工作目录下看到经过二值化处理的图片了。

猜你在找的VB相关文章