本文主要是介绍(二)掰开了,揉碎了,说经典halcon中的那些算子,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
计算机视觉:通俗点讲:就是让计算机通过图像理解外围的世界,理解之后要通过外围的控制系统与外界发生联系、动作:手眼抓取、标定、搬运。
视觉的平台有:Halcon、OpenCV、LabView
算子记忆的越多,后面越记不住。学视觉,绝不是比记忆力,比谁算子学的多。方向导向最重要。学习的最高境界:什么都记不住,套路,灵活使用,无招胜有招。学halcon一定要灵活,halcon做的很好,一定要触类旁通的。
halcon的学习要以项目为主,不要去钻牛角尖,不要细究语法。本身就是提供了一门工具。不要去研究怎么修工具,只要会使用,用好就足够了,不要去研究怎么修车。
一定要注意思路,思路决定出路。 做任何事情,一定要有一个方向导向。
方法思路、套路很重要。人生苦短、套路捷径必取。
halcon界面大多:见名知意。多摸索,慢慢就熟悉了,任何一个人刚接触一个新软件,都会有一种陌生感,但是一两天之后就会非常熟悉这个软件了。
halcon的两个路径:
C:\Users\Public\Documents\MVTec\HALCON-17.12-Progress\examples\images
C:\Program Files\MVTec\HALCON-17.12-Progress\doc\pdf\manuals
三个常用手法:二值化、形状选择、形态学。
- 二值化:通过threshold。灰度直方图。
- 形状选择:通过select_shape。特征直方图。
- 开闭运算,膨胀腐蚀。
halcon有两种变量:一种是图像变量,一种是控制变量。
图像变量又分为:图像、区域和xld亚像素轮廓三大数据类型。
图像:由像素构成:亮度值来表示该点的状态。
图形:矢量的几何,带方向大小的矢量构成。
图像文件:图片在硬盘上存储方式格式、给操作系统看的。
在halcon程序编辑器中,通过输入函数名(会有提示)然后按两次【Tab】键会自动补全。
在【Ctrl+E】【实例程序】中有关于多相机采集的案例【方法】【图像采集设备】中abs_multiple_cameras.hdev。可以查看多采集的案例。其中open_framegraber算子打开相机,并通过函数最后一个参数【句柄】来区分不同的相机。
在打开相机后,如果程序执行完,一定要关闭相机close_framegrabber。否则会报错。
多个相机,其实是每个相机轮流去拍摄图像。分先后轮流。
如果采用多线程的方式:在【方法】【并行处理】中
【Blob分析】实际上就是从图像中找到ROI。通常就是三个手法连起来用:二值化、形态学、特征选择。
在【打开灰度直方图】【打开特征直方图】旁边有【打开特征检测】和【打开轮廓线窗口】工具按钮,其中【打开特征检测】如下图:
有region区域、gray value灰度值、xld轮廓线。三种手法。
在halcon中有一种机制:threshold之后,得到的区域默认是同一个区域,必须调用connection,将所有区域按照联通域拆分成不同的区域。拆分成不同的区域之后,才能打开特征直方图,对不同的区域region采用select_shape等方法,提取特征,将拆分后的区域按形状等特征提取出来。(有时,在connection之后还要加一个填充空洞fill_up)
在halcon【变量窗口】【图像变量】中:如果有[ ]符号,代表有很多region区域。
在halcon菜单栏【函数】点击【管理函数】【用户接口】中,可以设置函数在程序框中的颜色。
在【图形窗口】中有一个【编辑ROI】小按钮,可以编辑ROI。在【ROI】工具中,可以通过各种形状来选择自己的ROI。先点击形状【绘制轴平行矩形】左键画图,右键释放画框。点击【插入代码】生成代码,生成一个区域。
在halcon中滤波算子有三种:2d_data_codes_minimize_noise.hdev
中值滤波去掉的是椒盐噪声:第58行: median_image (Image, ImageMedian, 'circle', 3, 'continued'):
工作原理:用一个方框在图像上从左到右,从上到下的扫描:方框中的像素,按值排序,然后用中值作为方框中心元素的值。平均滤波就是这个方框中所有值得平均值作为中心区域的值。高斯滤波分为空间域和频域:是距离加权之后的平均值。
这篇关于(二)掰开了,揉碎了,说经典halcon中的那些算子的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!