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

												

Halcon WPF C#采集图像区域灰度值的更多相关文章

  1. Halcon学习之八:图像区域叠加与绘制

    版权声明:本文为博主原创文章,未经博主允许不得转载. overpaint_gray ( ImageDestination, ImageSource : : : )  将灰度值不相同区域用不同颜色绘制到 ...

  2. 调整图像的灰度级数C++实现

    图像灰度级数我们见得最多的就是256了,如果想调整它的灰度级数,我们可以使用图像库的imadjust函数来作出调整,比如讲256个灰度级变成2个灰度级(也就是二值图了).再举一个例子,原来一幅256个 ...

  3. opencv——图像的灰度处理(线性变换/拉伸/直方图/均衡化)

    实验内容及实验原理: 1.灰度的线性变换 灰度的线性变换就是将图像中所有的点的灰度按照线性灰度变换函数进行变换.该线性灰度变换函数是一个一维线性函数:f(x)=a*x+b 其中参数a为线性函数的斜率, ...

  4. Halcon - 获取图像数据(灰度值)

    在 Halcon 中,或许大部分人都知道如何通过 get_grayval 获取图像的灰度值,这条算子在获取单个像素时是比较好用的.但是当你想获取一幅大尺寸图像的一行甚至所有的灰度数据时,它就会变得很吃 ...

  5. Halcon采集图像Image Acquisition解析

    很明显,图像的采集是所有机器视觉应用中必须解决的问题,HALCON提供了为各种图像采集设备执行这种交互的接口,图像采集的任务被简化为几行代码,只需几个操作符的调用,更重要的是,这种简单并不是以限制可用 ...

  6. vs联合halcon——采集图像(实时采集与单次采集)

    摘要 在对vs进行环境配置好以后,就可以开始与halcon联合进行实战.本篇就对图像的采集进行总结.通过构建采集相机GrabImage类的三个方法实现图像的采集: open() 打开相机 grabim ...

  7. DICOM图像像素值(灰度值)转换为CT值

    CT值的单位是Hounsfield,简称为Hu,范围是-1024-3071.用于衡量人体组织对X射线的吸收率,设定水的吸收率为0Hu. 在DICOM图像读取的过程中,我们会发现图像的像素值有可能不是这 ...

  8. Opencv实现图像的灰度处理,二值化,阀值选择

    前几天接触了图像的处理,发现用OPencv处理确实比較方便.毕竟是非常多东西都封装好的.可是要研究里面的东西,还是比較麻烦的,首先,你得知道图片处理的一些知识,比方腐蚀,膨胀,仿射,透射等,还有非常多 ...

  9. 肺结节CT影像特征提取(五)——肺结节CT影像ROI区域灰度直方图及其图形化

    在博客肺结节CT影像特征提取中,已经实现了肺结节的灰度.纹理和形态特征的提取.但是,对于进一步了解ROI区域像素值或者说CT值的分布来说,还存在一定的不足,不能够很好的显示ROI区域. 因此,本文将进 ...

随机推荐

  1. Python 2 和 3 的区别及兼容技巧

    目录 目录 前言 Python 2 or 3 ? 不同与兼容 统一不等于语法 统一整数类型 统一整数除法 统一缩进语法 统一类定义 统一字符编码类型 统一导入模块的路径搜索方式 修正列表推导式的变量作 ...

  2. 自定义标记mark

    前言 pytest可以支持自定义标记,自定义标记可以把一个web项目划分多个模块,然后指定模块名称执行.app自动化的时候,如果想android和ios公用一套代码时,也可以使用标记功能,标明哪些是i ...

  3. 初学单片机:Proteus介绍、Proteus与Keil联调(Windows10环境下)

    Proteus是一个仿真软件,可以在里面设计电路并模拟测试,也可生成PCB的布线等等,反正就是强大的不行.初学单片机,除了开发板,这个仿真器就是一个很好的调式环境.软件安装信息: Proteus 8. ...

  4. redis 锦集

    redis 锦集url:http://blog.csdn.net/lqadam/article/category/7479450 1. redis 排序 2.redis 慢查询.位数组和事务 3.re ...

  5. 求方程x1+x2+x3=15的整数解的数目

    求方程x1+x2+x3=15的整数解的数目要求0≤x1≤5,0≤x2≤6,0≤x3≤7.解:令N为全体非负整数解(x1,x2,x3),A1为其中x1≥6的解:y1=x1-6≥0的解:A2为其中x2≥7 ...

  6. 网络编程.TCP分块接收数据(AIO)(IOCP)

    1.前提:每次投递的接收缓冲区 在它返回后 就不再用它进行2次投递了 于是 接收缓冲区 在返回的时候,数据都是 从接收缓冲区的偏移[0]处开始填充的,且 接收缓冲区 可能被填满 也可能未被填满. 1. ...

  7. 利用coverage工具进行Python代码覆盖率测试

    Coverage是一种用于统计Python代码覆盖率的工具,通过它可以检测测试代码对被测代码的覆盖率情况. Coverage安装 1.安装命令:pip install coverage 2.查看cov ...

  8. C语言Ⅰ博客作业01

    1.你对计算机科学与技术专业了解是怎样? 本专业培养具有良好的科学素养,系统地.较好地掌握计算机科学与技术包括计算机硬件.软件与应用的基本理论.基本知识和基本技能与方法,能在科研部门.教育单位.企业. ...

  9. [DS+Algo] 010 二叉树的遍历

    二叉树遍历 深度优先 一般用递归 一些名词 遍历方式 英文 先序 Preorder 中序 Inorder 后序 Postorder 广度优先 一般用队列 Python 代码示例 class Node( ...

  10. [Git] 019 merge 命令的补充

    回顾:[Git] 017 加一条分支,享双倍快乐 的 "2.3" 1. "Fast-forward" "Git" 在合并分支时会尽可能地使用 ...