
正文
Halcon WPF C#采集图像区域灰度值
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
源码下载地址:https://github.com/lizhiqiang0204/ImageGray.git
Halcon代码如下:
*读取图片,转换成灰度图片read_image (Image1, 'C:/Users/Public/Documents/MVTec/HALCON-17.12-Progress/examples/images/cable1.png')
rgb1_to_gray (Image1, Image)*选择测量的区域draw_rectangle1 (, Row1, Column1, Row2, Column2)
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)*检测灰度
intensity (Rectangle, Image, Mean, Deviation)
dev_display (Image)
C:/Users/Public/Documents/MVTec/HALCON-17.12-Progress/examples/images/cable1.png 这个目录以及图片是安装Halcon自动生成的
将halcon程序导出生成C#文件

将生成的C#文件添加到WPF工程下

采集图像灰度值的方法就是Halcon生成的C#类里面的方法 public void GatherGray(HTuple Window, TextBlock txbGray)
{
hv_ExpDefaultWinHandle = Window;
// Local iconic variables
HObject ho_Image1, ho_Image, ho_Rectangle;
// Local control variables HTuple hv_Row1 = null, hv_Column1 = null, hv_Row2 = null;
HTuple hv_Column2 = null, hv_Mean = null, hv_Deviation = null;
// Initialize local and output iconic variables
HOperatorSet.GenEmptyObj(out ho_Image1);
HOperatorSet.GenEmptyObj(out ho_Image);
HOperatorSet.GenEmptyObj(out ho_Rectangle);
//读取图片,转换成灰度图片 ho_Image1.Dispose();
HOperatorSet.ReadImage(out ho_Image1, "C:/Users/Public/Documents/MVTec/HALCON-17.12-Progress/examples/images/particle.png");//读原始照片
ho_Image.Dispose();
HOperatorSet.Rgb1ToGray(ho_Image1, out ho_Image);//把彩色图像转化成黑白照片
HOperatorSet.DispObj(ho_Image, hv_ExpDefaultWinHandle);//显示图像 //选择测量的区域
HOperatorSet.DrawRectangle1(hv_ExpDefaultWinHandle, out hv_Row1, out hv_Column1,out hv_Row2, out hv_Column2);
ho_Rectangle.Dispose();
HOperatorSet.GenRectangle1(out ho_Rectangle, hv_Row1, hv_Column1, hv_Row2, hv_Column2); //检测灰度
HOperatorSet.Intensity(ho_Rectangle, ho_Image, out hv_Mean, out hv_Deviation);
HOperatorSet.DispObj(ho_Image, hv_ExpDefaultWinHandle);
//MessageBox.Show(hv_Mean.ToString());
txbGray.Text = ((double)hv_Mean).ToString("0.00");//显示灰度值 ho_Image1.Dispose();
ho_Image.Dispose();
ho_Rectangle.Dispose();
}
}
}
编译生成执行文件如下图,点击采集灰度按键,然后在作出图像区域按住鼠标左键选择采集的区域,选择完毕后,点击鼠标右键即可显示灰度值








