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



  • 相关阅读:
    快速生成树协议 RSTP
    VLAN间路由
    二层交换机原理
    网络安全系统之四 PKI体系
    网络安全系统之三 数字证书
    生成树协议 STP
    网络安全系统之二 数字签名
    网络安全系统之一 加密算法
    系统可靠性
    DNS资源记录
  • 原文地址:https://www.cnblogs.com/lizhiqiang0204/p/11399721.html
Copyright © 2011-2022 走看看