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 (200000, 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();
    }
}
}
编译生成执行文件如下图,点击采集灰度按键,然后在作出图像区域按住鼠标左键选择采集的区域,选择完毕后,点击鼠标右键即可显示灰度值

 

 



 

转载于:https://www.cnblogs.com/lizhiqiang0204/p/11399721.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值