将Hobject或HImage图像转为Bitmap格式(C#)
工作上的需求,需要将Halcon处理过的图像转换为Bitmap格式的图像进行显示保存。在网上查阅了一些例程,多数都未能实现。在和同事的探讨摸索下,结合网上查阅到的类似程序,最终实现了Hobject或Himage转Bitmap的功能。
贴代码之前首先介绍一下转换的核心算子:GetImagePointer1。
IntPtr HImage.GetImagePointer1(out string type,out int width,out int height),这是halcon图像库中获取黑白图像数据指针的算子,再次强调,是获取黑白图像数据指针的算子。该算子返回一个指向图像数据的IntPtr型指针,输出的type参数为数据格式,例如图像为8位黑白格式的时候type为“byte”,width和height是图像的尺寸。
下面是转换的代码
Himage image = new HImage();
image.ReadImage(@"d:\image.bmp");//读取图像
HImage grayImage = new HImage();
grayImage = image.Rgb1ToGray();//将彩色图像转为黑白
string type;//接收图像类型
int width,height;//接收图像尺寸
IntPtr pointer=grayImage.GetImagePointer1(out type, out width, out height);
System.Drawing.Imaging.ColorPalette palette = null