2024-11-22 13:54:02
smallest_rectangle1(Regions : : : Row1, Column1, Row2, Column2)功能:返回平行坐标最小外包矩形该算子计算返回输入区域的平行于坐标系的最小外包矩形。该最下外包是关于区域中心计算的最小平行外包。返回参数:Row1, Column1:矩形中心点的坐标。 Row2, Column2:矩形右下较的点坐标。smallest_rectangle2 (...
2024-11-05 01:51:44
勇哥这套halcon引擎的学习笔记贴子共七篇,它是在官方指导文档《http://www.skcircle.com/?id=1343》的基础上学习编写而成的笔记。只是有一篇讲解怎么调用向量变量的没有加入,因为勇哥实在不知道这个向量变量有啥子用。以后如果搞明白了再加入吧。2020/7/3勇哥注:原来halcon中的向量就是个容器,跟c++标准模板库中的那个向量是一致的。第八篇加上来吧halcon引擎学...
2024-10-11 10:44:19
勇哥这套halcon引擎的学习笔记贴子共七篇,它是在官方指导文档《http://www.skcircle.com/?id=1343》的基础上学习编写而成的笔记。只是有一篇讲解怎么调用向量变量的没有加入,因为勇哥实在不知道这个向量变量有啥子用。以后如果搞明白了再加入吧。2020/7/3勇哥注:原来halcon中的向量就是个容器,跟c++标准模板库中的那个向量是一致的。第八篇加上来吧halcon引擎学...
2024-05-07 17:00:29
从今天开始每天学习halcon软件。本博客中所用版本均为halcon11.0。第一种方法ImagePath:=[]ImagePath[0]:='E:/images1/a000.bmp'ImagePath[1]:='E:/images1/a001.bmp'ImagePath[2]:='E:/images1/a002.bmp'ImagePath[3]:=...
2024-01-02 13:12:51
勇哥这套halcon引擎的学习笔记贴子共七篇,它是在官方指导文档《http://www.skcircle.com/?id=1343》的基础上学习编写而成的笔记。只是有一篇讲解怎么调用向量变量的没有加入,因为勇哥实在不知道这个向量变量有啥子用。以后如果搞明白了再加入吧。2020/7/3勇哥注:原来halcon中的向量就是个容器,跟c++标准模板库中的那个向量是一致的。第八篇加上来吧halcon引擎学...
2023-08-29 11:12:22
带ROI跟随的找边,是机器视觉中最常用的功能。如果各位对勇哥这段代码有疑问,欢迎留言讨论。载入第一张图片,执行找边的结果。载入第二张图片,角度与位置与上张不同。可以看到ROI是跟随的,执行找边。这里勇哥没有再找第二条边,因为方法是一样的,就不重复了。完整测试代码如下:找边的算子find_line是个外部过程,其代码见勇哥另一个贴子:Halcon学习(27-2)halcon测量技术:找线在这个找边的...
2023-08-02 11:22:55
勇哥这套halcon引擎的学习笔记贴子共七篇,它是在官方指导文档《http://www.skcircle.com/?id=1343》的基础上学习编写而成的笔记。只是有一篇讲解怎么调用向量变量的没有加入,因为勇哥实在不知道这个向量变量有啥子用。以后如果搞明白了再加入吧。2020/7/3勇哥注:原来halcon中的向量就是个容器,跟c++标准模板库中的那个向量是一致的。第八篇加上来吧halcon引擎学...
2023-03-08 21:24:38
2D测量之一通过2D测量可以获取一些特征,如• 物体的范围,也就是说组成物体的像素数组• 物体的方向• 物体间或者物体组成部分间的角度• 物体的位置• 物体的尺寸 ,也就是说他的宽度高度或者物体间的距离,物体组成部分间的距离• 物体的个数分析measure_metal_part_first_example.hdev例程第一步:创建区域并提取基础信息• 通过threshold算子提取感兴趣的区域•...
2022-11-06 09:59:27
勇哥注:
这个系列是勇哥的小娱乐。这么多年来感觉自己就是工作机器,没有一点属于自己的乐子。
突然想到儿时的小梦想是写个fc的坦克大战。要不,先弄个AI,让它自动玩坦克大战吧。fc的坦克大战是fc模拟器的游戏,要做自动打怪的AI,可以考虑连续窗口截图,然后交由halcon进行处理。处理结果交由策略代码处理,最后发布手柄控制指令。因此,首先先要考虑窗口的连续帧如何实时截取,然后就是如何实现虚拟...
2021-03-30 16:32:23
这个功能是用于在C#那边用halcon引擎执行程序时的交互性调试用的。下面的主机与端口是指的C#那边的主机与端口。你必须在C#这边用下面这句MyEngine.StartDebugServer(); 开启调试服务器。这个调试服务器默认的地址是: localhost 端口是:57786勇哥感觉指定网络中另一台机器做为服务器也应该是可以的。 private void Form1_Load(object...
2021-03-21 22:30:09
1D测量之一 学习如何使用Halcon进行1D测量,可以参考:1、 Halcon自带的文档【solution_guide_iii_a_1d_measuring.pdf】2、 Halcon例程【measure_switch.hdev】 其中 【solution_guide_iii_a_1d_measuring.pdf】,第一章以Halcon例程【measure_switch.hdev】为例...
2021-03-13 16:58:53
勇哥碰到下面这个错误。我记得之前是好好的。MyEngine.UnloadAllProcedures(); 这个在halcon19.11是没有问题的,现在勇哥换成了halcon12就出了内存异常问题。经过实验,我发现另一个成员函数UnloadProcedure是可以正常使用的。MyEngine.UnloadProcedure("demo1");这个函数需要指定要重新载入的函数名...
2021-03-08 14:51:17
USB相机,包括usb2.0和usb3.0的,这些相机在halcon里面选择的是DirectShow接口。在网上和使用过许多usb相机的朋友讨论过,它有下面的一些问题: halcon的directshow支持的分辨率不全你无法选择想要的分辨率。这一点勇哥用halcon19.11试了下,可以看到分辨率是只读选项。但无法达到最大分辨率这种问题,可能是对某些相机而言。USB相机不能设置固定的ID如果同时...
2021-03-06 14:54:30
大很多场合,需要在视觉程序中导入CAD文档,比如,在3C行业,需要对手机外壳进行CNC加工,或者点胶操作,此时,需要获取产品的各个点的数据。如果将CAD直接导入,就会大的减少编程工作量,同时也能达到很高的精度。以下为Halcon自带例程:* This example program shows how to read DXF files and how to
* use this CAD des...
2021-02-26 19:52:58
基恩士视觉一些工具确实有独道之处。例如“实时浓淡补正”和“渐变滤波器”有空时想研究一下它们怎么实现的。当然,网上是不可能有啥子资料的。对于“浓淡补正”,仅在ihalon中找到一份说明。上面这个halcon还是可以做到的。勇哥写了一段代码:read_image(Image, '1.png')
rgb1_to_gray(Image, GrayImage)
sobel_amp(Gra...
2021-02-24 20:45:06
直方图均衡简单、高效;但是,图像中不同的区域灰度分布相差甚远,对它们使用同一种变换常常产生不理想的效果;实际应用中,常常需要增强图像的某些局部区域的细节。为了解决这类问题,Pizer等提出了局部直方图均衡化的方法(AHE);AHE方法仅仅考虑了局部区域的像素,忽略了图像其他区域的像素,且对于图像中相似区域具有过度放大噪声的缺点;K. Zuiderveld等人提出了对比度受限CLAHE的图像增强方法...
2021-02-24 08:55:17
转一篇CLAHE算法的贴子,涨下见识!原文出处:https://www.cnblogs.com/jsxyhelu/p/6435601.html?utm_source=debugrun&utm_medium=referral CLAHE算法对于医学图像,特别是医学红外图像的增强效果非常明显。CLAHE https://en.wikipedia.org/wiki/Adaptive_histo...
2021-02-24 08:44:33
转一篇矩阵做最小二乘法的贴子:https://blog.csdn.net/wuan584974722/article/details/53670878对于我们孤立的点的集合,我们可以使用矩阵求最小二乘法最优解。 //对于我们孤立的点的集合,我们可以使用矩阵求最小二乘法最优解。
create_matrix(|ColumnEdageArr|,2,1,MatrixIDA)
creat...
2021-02-24 08:42:22
此实例通过使用Halcon实现5种清晰度算法函数:1. 方差算法函数;2. 拉普拉斯能量函数;3. 能量梯度函数;4. Brenner函数;5. Tenegrad函数;测试效果如下图片;找到峰值对应的那张图,确实是最清晰的那张;使用直方图显示清晰度结果,如果有更好的方法,那就跟帖回复吧。此实例有HalconBBS群友提供!*evaluate_definition的使用例子
*使用halcon自带...
2021-02-24 08:35:16
这是一篇转载贴子:https://blog.csdn.net/wuan584974722/article/details/53764769 此文章对应的是类似于Retinex算法,见贴子: http://www.skcircle.com/?id=320 **********************************
*何凯明博士去雾算法代码实现
*论文:<<Single Im...
2021-02-23 20:50:52
资料看上去只是大恒的一张幻灯片上面的内容不用看了。勇哥联系了大恒的人,打听到下面的情况(这算是官方说法了):1. 安装halcon的时候,勾选“install driver for usb dongles”,安装加密狗驱动。注意这个时候你得把狗插上去。2. 如果你错过了这个选项,可以选择手工安装执行下面的程序(带参数 -i)注意执行前要先插上狗。3. 回到haspdinst.exe文件的上级目录,...
2021-02-22 16:21:40
高斯金字塔可以生成不同大小的一波图像,按你指定的缩小比例来。如下图:算子原型:gen_gauss_pyramid(Image : ImagePyramid : Mode, Scale : )gen_gauss_pyramid计算一个按比例缩小的图像金字塔。下一幅图像缩小的尺度由参数Scale 决定。例如,Scale的值为0.5将使图像Image 的边缘长度缩短50%。这完全等同于“正常”金字塔。参...
2021-02-21 20:10:11
这篇是对halcon例程pick_and_place_with_2d_matching_stationary_cam.hdev的学习笔记。它讲得是利用halcon做了手眼标定后,怎么应用标定结果做机器人抓取物料。一般学习了halcon的手眼标定例程后,第一个想到的问题估计就是想到应用的问题。是不是想屏幕上指定一个像素点,然后转为机器人的坐标让它走到这个点上去?以前九点标定是用affine_tran...
2021-02-20 17:30:06
这份3D视觉指南pdf,我花了几十元用wps的vip收费全文翻译功能整出了个中文版来。翻译结果比较惨,特别是代码部分也被傻傻的翻译了。其它还有些图文混排的部分也乱套了。数学公式有些也被“翻译”了。不过纯文字阅读的部分还是可以勉强读一下,但是你也得中英文对照着一起看才行。话说许多halcon标定的图文资料都是从这份指南里copy出来的,还是很有参考价值。就弄个收费下载,收回点翻译费用吧。下载资源同时...
2021-02-19 23:05:03
勇哥碰到下面这个错误信息:标定对象姿势不够:对于手眼标定,至少需要三个标定对象姿势Not enough calibration object poses: For the hand-eye-calibration
at least three calibration object poses are necessary这个问题的原因是在标定的时候标定板没有倾斜和变换位置。正确的摆放应该是下面这...
2021-02-16 21:08:15
这一篇谈下C#调用hdvp外部函数要用到的动态修改传入参数的方法。C#调用外部函数时,由于函数参数各异,你得对每个不同的函数编制调用程序,因此C#端代码量很大。本篇讨论的办法可以实现通用的方法调用外部函数。演示程序使用了treeView控件做为参数修改控件,实现了参数实时修改生效并且参数保存到磁盘。程序可以调用任何你自定义的halcon外部函数,仅需要你自己提供一下传入的图标变量(图片)和读取和显...
2021-02-07 09:45:03
勇哥偶尔看到这篇HDevelop语法贴子,总结得比较全面。由于没必要重复造轮子,因此转载过来方便初学者查阅。下面文章转载自:https://blog.csdn.net/weixin_42258743/article/details/107506789(一)Halcon的语法结构特点特点:1)Halcon大部分的语句是Halcon提供的算子,此外也包含了少部分的控制语句;2)不允许单独声明变量;3)...
2021-02-02 22:41:49
阈值分割引言C#阈值分割有非常多的算法,大体上分为全局和局部算法。
全局算法包括全局固定阈值和基于图像直方图的阈值,局部算法包括局部动态阈值分割。
基于图像直方图阈值分割的方法也有很多,比如常规的高斯滤波双峰法,OTSU大津法。
但是这类所有的法都基于一个假设:图像是有前景和背景的,待分割目标处于背景中,即图像直方图是双峰的。
如果因为非均匀光照导致待分割目标不处于背景或前景中,即图像直方...
2021-01-31 23:27:03
模糊测量是对标准测量的一种扩展,并不意味着测量是“模糊的”,而是用模糊隶属函数来控制边缘的选择。所谓的模糊隶属函数,就是将边缘的特征值转换为隶属度值,基于这些隶属值做出是否选择边缘的决定,即当隶属值大于你设定模糊阈值时,边缘就会被选中,反之则反。这种方法的优点是即使使用很低的最小阈值或平滑,也能灵活处理额外的边缘。举个简单的例子方便理解: 比如在测量开关引脚之间的宽度和距离时,引脚可...