边缘检测的定义 :使用数学方法提取图像像元中具有亮度值(灰度)空间方向梯度大的边、线特征的过程。边缘 是指周围像素灰度有阶跃变化或屋顶等变化的那些像素的集合。图像的边缘对应着图像灰度的不连续性。显然图像的边缘很少是从一个灰度跳到另一个灰度这样的理想状况。真实图像的边缘通常都具有有限的宽度呈现出陡峭的斜坡状。边缘的锐利程度由图像灰度的梯度决定。梯度是指灰度变化的最快的方向和数量。常见的边缘点有三种 :第一种是阶梯形边缘 (Step-edge), 即从一个灰度到比它高好多的另一个灰度。第二种是屋顶型
2.1 the process of 1D Edge extraction Then, the mean gray value along each line of projection is calculated. The sequence of these mean valuesis called&nbs
本人文着重阐述以下问题: halcon是否只能使用halcon专用的标定板?halcon标定板如何生成?halcon标定板如何摆放,拍照数量有无限制? halcon是否只能使用halcon专用的标定板? halcon提供了简便、精准的标定算子并且提供了标定助手,这无疑大大方便了广大开发者。在halcon中有两种方式可以进行标定:如halcon自带例程中出现的,用halcon定义的标定板 ,如下图用户自定义标定板,用户可以制作任何形状、形式的标定板所以,h
本次先对halcon的自标定做个整体介绍,了解屌炸天的自标定在实际应用中的应用与实现方法,具体的编程细节将在后续的文章中介绍。halcon提供了一种自标定的算子,它可以在不用标定板的情况下,标定出相机内参(无焦距),相对于多幅标定无法获取相机的外参。求出了相机内参就可以进行畸变校正,因而自标定相对于多幅标定,在畸变校正方面更快捷,这样设备在现场更容易操作、维护。在畸变校正以后我们同样可以放置一个参考物求取像素当量,构建XY世界坐标系,以用于测量、定位等应用。edges_sub_pix
一个喷码识别的案例read_image (Image, 'D:/用户目录/Desktop/2.png')
rgb1_to_gray(Image, Image)
get_image_size (Image, Width, Height)
* 获取喷码区域的方法很多 比如可以用me
在日常工程应用中,我们通常通过halcon的 shape-based matching(形状匹配)进行各种定位,如以前文章介绍的这样,理解各个参数并灵活应用通常就能得到很好的匹配效果和匹配速度,当待匹配物体有轻微变形时,并不影响得到的匹配结果,然后当待匹配物体有较大变形时,如塑料产品在成形时变形、纺织产品的花纹因为褶皱变形等,要想得到精确的定位结果就显得捉襟见肘, 如下图所示,印刷品有较大变形,在用shape-based matching时,定位结果就不尽如人意,因为shape-bas
当我们用VC\C#调试halcon代码的时候,通常会遇到一个头痛的问题,我们无法看到halcon变量的调试信息如下图:什么鬼。。。什么鬼比如我们想看一个double数值变量,我们需要double score = htScore.D()或者当我们想看一个image、region的中间处理结果时,我们需要存文件或者输出到窗口中如此的繁琐以至于大大降低了开发效率。 然而这些烦恼在halcon12中得到了解决!halcon12新特性:支持Visual Studio 的可视化调试插件。前提:VS
很多扫描APP都有祛底色的功能:用于改善成像质量,通常扫描后的图像可能会用于存档或者再打印。 本来想通过扫描后打印,想法是好的,但是打印出来的文件不是自己想象的那样,打印出来有底色,而且很严重,那该怎么办才能解决? 熟悉photoshop的通常通过色阶调整来达到此目的,但是今天介绍的是用halcon灰度拉伸函数(scale_image)来达到此目的。下图是halcon祛底色的效果。在halcon的可视化工具-灰度直方图中可以找到,例如此图将(0,130)拉伸到(0,255)代
如果不了解最小二乘算法 请先阅读: Least squares的算法细节原理https://en.wikipedia.org/wiki/Least_squares通常在halcon中拟合直线会用houghline或者 fitline。本文提供一种新的选择,用halcon的矩阵操作实现最小二乘拟合直线首先随机生成一组数据
Mx:=[100:10:500]
tuple_length(Mx,len)
tuple_gen_const(len,5,r)
Ma:=2
Mb:=40
tuple_r
收到一封email,有个学员求助去除衣服上纹理的干扰,然后提取衣服上徽章的边缘的方法。我想他肯定是个很努力上进的boy,在求助以前也许已经试过各种方法,通过二值化不断的调试阈值, 寻找各种边缘检测的算子不断的实验,或者更高阶的用FFT试图去掉背景等等,我想起了我刚入门的时候 那股不达目的绝不罢休的狠劲,在网络上或者图书馆搜索相关的书籍, 试图找到答案,然而受制于自身知识体系的不完善,并不能得到满意的答案。所以在忙完手头的工作,我认真的看了他的需求,并回复了几种方法供其参考。来