前言:一直以来,对于blob分析勇哥没有做系列贴子,现在把它补上。在halcon中经常听到两个概念,一是blob分析,二是形态学,它们之间是什么关系呢?
答案是:后者是前者的一个子集,或者说是前者的一个步骤。
形态学在blob分析中常见的用于去除噪声影响,常见的算法有:腐蚀、膨胀、开运算、闭运算、
顶帽、黑帽、形态学梯度等等。 详见:https://www.skcircle.com/?id=1643
blob分析主要内容如下:
1、图像分割:如全局阈值、局部阈值、二值化等。
勇哥偶尔一篇贴子中见到用开运算做目标检测,这个思路感觉还是很稀奇的。原贴只是一张示例图片,我编写了一段演示代码以方便大家阅读。原文介绍只是一张图片,其中Structuring element指的是开运算指定结构元素,图中右半部分说是利用Opening算子可以在图中检索出和结构元素类似的部分。halcon的开运算有许多算子,可以使用结构元素的有:opening(Region, StructElement : RegionOpening : : )minkow
阈值分割引言C#阈值分割有非常多的算法,大体上分为全局和局部算法。
全局算法包括全局固定阈值和基于图像直方图的阈值,局部算法包括局部动态阈值分割。
基于图像直方图阈值分割的方法也有很多,比如常规的高斯滤波双峰法,OTSU大津法。
但是这类所有的法都基于一个假设:图像是有前景和背景的,待分割目标处于背景中,即图像直方图是双峰的。
如果因为非均匀光照导致待分割目标不处于背景或前景中,即图像直方图无双峰,
那么基于图像直方图的所有法都是不甚理想的
只能在此基础上进行一定的变换,例如nbl算
说明:模板匹配是halcon的强项,opencv自带的模板匹配算子跟halcon这个比起来差好几层楼那么多。
在视觉引导定位时,模板匹配是少不了的东西。
所有的新手在遇到阈值搞不定的应用时,都会想到模板匹配,可见其概念和易用性已经深入人心。
但实际上halcon的模板匹配的知识点还是很多的,并非仅仅是我们常见的形态模板匹配。
勇哥这个系列贴子用来补全halcon模板匹配的相关系列知识。使用基于描述符的模板匹配在图片序列中寻找不同姿式的饼干盒子这个例子展示了如何使用基于描述符的匹配特性找到
先上代码:* This example program shows how to use optical_flow_mg to compute the optical flow in an image sequence and how to segment the op
勇哥注: 这个例子主要是演示了形态模板的定位功能,测量框随着图像旋转与移位而保持相对位置不改变。这是个优秀的例子,值得新手一看。================================这个示例程序演示了如何使用形态模板匹配来定位对象。此外,还介绍了如何利用检测到的物体的位置和旋转来构造检测任务的搜索空间。在这个特定的例子中,IC上的打印文字信息用于查找IC。从找到的位置和旋转角度,构造了两个测量矩形来测量IC引线之间的间距。由于本例中使用的照明,引线在多个位置和旋转处具有255的饱和灰度
这个示例程序演示了如何为截面的每个像素计算沿其主轴的区域的厚度。厚度定义为等高线交点与各点(相距最远)主轴垂线之间的距离。这个示例程序首先通过确定预定义灰度值的连接分量来确定区域。然后计算了该区域的厚度,并对其主轴进行了可视化计算。厚度在单独的窗口中绘制dev_update_off ()
dev_close_window ()
read_image (Image, 'screw_thread')
WindowWidth
前言:==========================================================分类器相对于深度学习来讲是一种古老传统的图片处理技术。halcon中常见的有四类分类器:MLP(多层神经网络neural Nets)SVM(支持向量机)K-NN(K-最邻近)GMM(高斯混合类型)分类器的应用领域主要是下面这些:image segmentation 图像分割&nbs
请看下面的例子:dev_clear_window ()
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
gen_circle_contour_xld (ContCircle, 200, 200, 100, 0, 6.28318,&nb
测试图:测试代码:read_image (Image, 'C:/Users/斌/Desktop/test.png')
binary_threshold (Image, Region, 'max_separability', 'dark', UsedThreshold)
*转骨架
skeleton (Region, Skeleton)
*骨架转xld