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();
}
}
}
编译生成执行文件如下图,点击采集灰度按键,然后在作出图像区域按住鼠标左键选择采集的区域,选择完毕后,点击鼠标右键即可显示灰度值
Halcon WPF C#采集图像区域灰度值的更多相关文章
- Halcon学习之八:图像区域叠加与绘制
版权声明:本文为博主原创文章,未经博主允许不得转载. overpaint_gray ( ImageDestination, ImageSource : : : ) 将灰度值不相同区域用不同颜色绘制到 ...
- 调整图像的灰度级数C++实现
图像灰度级数我们见得最多的就是256了,如果想调整它的灰度级数,我们可以使用图像库的imadjust函数来作出调整,比如讲256个灰度级变成2个灰度级(也就是二值图了).再举一个例子,原来一幅256个 ...
- opencv——图像的灰度处理(线性变换/拉伸/直方图/均衡化)
实验内容及实验原理: 1.灰度的线性变换 灰度的线性变换就是将图像中所有的点的灰度按照线性灰度变换函数进行变换.该线性灰度变换函数是一个一维线性函数:f(x)=a*x+b 其中参数a为线性函数的斜率, ...
- Halcon - 获取图像数据(灰度值)
在 Halcon 中,或许大部分人都知道如何通过 get_grayval 获取图像的灰度值,这条算子在获取单个像素时是比较好用的.但是当你想获取一幅大尺寸图像的一行甚至所有的灰度数据时,它就会变得很吃 ...
- Halcon采集图像Image Acquisition解析
很明显,图像的采集是所有机器视觉应用中必须解决的问题,HALCON提供了为各种图像采集设备执行这种交互的接口,图像采集的任务被简化为几行代码,只需几个操作符的调用,更重要的是,这种简单并不是以限制可用 ...
- vs联合halcon——采集图像(实时采集与单次采集)
摘要 在对vs进行环境配置好以后,就可以开始与halcon联合进行实战.本篇就对图像的采集进行总结.通过构建采集相机GrabImage类的三个方法实现图像的采集: open() 打开相机 grabim ...
- DICOM图像像素值(灰度值)转换为CT值
CT值的单位是Hounsfield,简称为Hu,范围是-1024-3071.用于衡量人体组织对X射线的吸收率,设定水的吸收率为0Hu. 在DICOM图像读取的过程中,我们会发现图像的像素值有可能不是这 ...
- Opencv实现图像的灰度处理,二值化,阀值选择
前几天接触了图像的处理,发现用OPencv处理确实比較方便.毕竟是非常多东西都封装好的.可是要研究里面的东西,还是比較麻烦的,首先,你得知道图片处理的一些知识,比方腐蚀,膨胀,仿射,透射等,还有非常多 ...
- 肺结节CT影像特征提取(五)——肺结节CT影像ROI区域灰度直方图及其图形化
在博客肺结节CT影像特征提取中,已经实现了肺结节的灰度.纹理和形态特征的提取.但是,对于进一步了解ROI区域像素值或者说CT值的分布来说,还存在一定的不足,不能够很好的显示ROI区域. 因此,本文将进 ...
随机推荐
- leetcode-mid-design-380. Insert Delete GetRandom O(1)
mycode import random class RandomizedSet(object): def __init__(self): """ Initialize ...
- 十、RF运行方式pybot运行方式
pybot命令 1.执行整个项目下的所有用例: pybot 项目路径.例如: pybot D:\RF 2.执行某个suit中的所有用例: pybot 项目路径\suit文件名称. 例如:pybot D ...
- 【nginx】常用命令 启动|停止|重启|重新读取配置-centOS7
查看服务的当前状态 (flaskApi) [root@67 goTest]# systemctl status nginx.service ● nginx.service - The nginx H ...
- 测开之路一百五十五:jquery-validation前台数据验证
前面做的wtform验证是服务器端的验证,需要把数据传输到服务器,服务器验证后再吧结果传输到前端,网络慢的时候,用户体验不好,所以需要前端验证,且后端验证不能少 传统的js或者jquery如果要验证信 ...
- Linux监控命令之==>sar
一.使用说明 sar 是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用情况.磁盘I/O.CPU效率.内存使用状况.进程活动及 ...
- BigDecimal进行加减乘除计算
以前大部分关于查询计算的逻辑是在sql语句中执行的,但是有时候会出现比较复杂的计算情况,需要我们在代码中进行计算,这个时候使用BigDecimal进行计算会很方便. BigDecimal num1 = ...
- 20191127 Spring Boot官方文档学习(4.12)
4.12.缓存(Caching) Spring框架提供了对应用程序透明添加缓存的支持.从本质上讲,抽象将缓存应用于方法,从而根据缓存中可用的信息减少执行次数.缓存逻辑是透明应用的,不会对调用者造成任何 ...
- Python--笔试题
一.如何提高Python的运行效率: 1.使用生成器,因为可以节约大量内存 2.循环代码优化,避免过多重复代码的执行 3.核心模块用Cython PyPy等,提高效率 4.多进程.多线程.协程 5.多 ...
- python虚拟环境virtualenv创建与迁移
1.安装virtualenv pip install virtualenv #(python2) pip3 install virtualenv #(python3) 2.创建venv virtual ...
- 全新一台node节点加入到集群中
目录 前言 对新节点做解析 方法一 hosts 文件解析 方法二 bind 解析 测试 分发密钥对 推送 CA 证书 flanneld 部署 推送flanneld二进制命令 推送flanneld秘钥 ...