首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【工程应用一】 多目标多角度快速模板匹配算法(基于NCC,效果无限接近Halcon中........)

③、I 表示搜索图像中和模板一样大一个块,很明显这个累加有多重方法可以快速实现,比如比较原始积分图技术,或者我BoxBlur里那种更为快速实现,这一项也是和参数无关。...X/Y乘以2,那么为了保证在下一层中精度,此时搜索区域需要适当增大,比如选择匹配点周围5*5或者7*7一个区域,然后在这感兴趣区域中再进行一个局部匹配计算,此时只需要计算25或者49次小匹配计算...在单目标时,我们对最高层金字塔进行了全图匹配后,只需要取最大匹配作为候选点,这也是理所当然,当问题来到多目标时,一个自然想法就是对匹配进行排序,然后取前N个最大作为候选点。...,比如我从一个未旋转图像中扣一个矩形出来作为模板, 然后把图像旋转各10度,用halcon对模板进行匹配,得到结果哪怕选择亚像素也不会是精确10度。...在上面边缘处局部方法图中,我们可以看到,由于插特性,边缘处未能在原始图像中采集到足够采样点,因此,选择了红色背景色作为融合基色,此时结果像素就不完全是属于原始图像了,怎么办?

2.9K51

关于Halcon中variation_model模型快速解读。

,如果是,则这个点是合格,不是,则这个像素点就是不合格区域。    ...Mode参数有3个选择,: 'standard', 'robust', 'direct',这也是这个算子灵魂所在,具体做法后续再说,在创建时只是保存了他们,并没有做什么。   ...',训练结果 ideal image 应该是(实际还需要四舍五入求整):         当选择模式为 'robust',训练结果 ideal image 应该是:      当选择'standard...选择'robust'模式时, ideal image好说,就是取中间,但是对于variation image,并不是普通方差图像,在halcon中时这样描述:The corresponding variation...Halcon内部计算公式为:    i(x,y)是前面得到Ideal Image, v(x,y)为variation image,  au/al/bu/bl即为算子输入参数。

49330
您找到你想要的搜索结果了吗?
是的
没有找到

opencv模板匹配加速思路

对于工业应用来说,往往需要用到形状匹配来达到定位功能,VisionProPatMax算法,Halcon形状匹配算法都是基于边缘模版匹配。...(2).提取模板边缘。依据Canny算法原理,提取边缘点。 (3).计算边缘点在x,y方向梯度以及总梯度。...(4).保存边缘点对应x,y梯度,并将梯度强度归一化处理以消除光照不均影响(1除以该点梯度强度,这样得到都是[0,1]区间内)并将边缘点坐标转换为相对于重心相对坐标 经过以上操作,我们便建立好了一系列旋转...找到评分最高点就是匹配到形状重心。所用模板旋转和缩放系数,就对应搜索图像中目标的旋转和缩放。其中金字塔用来对算法进行加速。...先在顶层金字塔进行快速搜索匹配得到一个匹配位置,然后在下一层金字塔进行匹配时候就能在该区域roi内进行搜索,以此类推,直到最底层。通过金字塔可以大大加快匹配速度。

1.5K42

Halcon缺陷检测实例转OpenCV实现(六) 瓶口缺陷检测

本期文章继续介绍缺陷检测专题第六个案例,用OpenCV实现Halcon中一个瓶口缺陷检测实例,前面案例链接如上↑↑↑。...Halcon中对应例子为inspect_bottle_mouth.hdev,用于检测酒瓶瓶口是否出现破损等缺陷情形,检测效果如下: (1) 正常情瓶口完整,无破损 ?...Halcon实例主要步骤包含五步,分别是: 使用阈值处理和形态学粗定位品口位置; XLD轮廓拟合最近似的圆形区域作为瓶口轮廓; 极坐标变换,转换到水平或垂直方向进行处理; 均值滤波图与原图做差分,根据阈值提取...---- 具体实现代码大家有兴趣看下Halcon实例代码,这里有几个重要步骤需要对比说明: (1) 瓶口轮廓粗定位,OpenCV实现是根据瓶口部分区域为黑色且明显易于提取所以选择了HSV...(3) 均值滤波做差分,注意这里均值滤波核大小,一般我们都是设置(3,3)或(5,5)等,这里物体垂直方向较长,参考Halcon例子中设置为(3, 501),看效果: blur = cv2.blur(

3.5K10

halcon是什么软件?机器视觉软件HALCON中文版,HALCON下载安装

Halcon是一款先进机器视觉软件,主要用于工业自动化、机器人视觉等领域。它拥有强大计算能力、丰富图像处理库和友好界面,可以帮助用户快速、高效地进行图像处理和分析。...同时,Halcon还支持自定义算法,用户可以根据自己需求编写自己处理函数。在图像处理过程中,Halcon还提供了丰富图像分析工具,可以帮助用户对图像进行分析和识别。...2、进入halcon-21.11.0.0-x64-win64文件夹,右键点击【som.exe】文件,选择以【管理员身份运行】。3、点Welcome页面左上角【x】关闭欢迎说明。...threshold:对图像进行二化处理,将灰度图像转换为黑白图像dev_display:在屏幕上显示图像reduce_domain:将图像对象限制在指定区域内crop_domain:裁剪图像对象指定区域...:对图像进行闭运算,填补空洞gen_circle:生成圆形区域对象gen_rectangle1:生成矩形区域对象affine_trans_image:对图像进行仿射变换,如旋转、平移、缩放等这些函数可以帮助用户进行图像处理

1.2K30

Halcon 数据结构

Halcon 定义了自己独有的数据结构,本文记录相关内容。 简介 HALCON 数据参数主要有图形参数和控制参数。其中,图形参数包括图像、区域、亚像素轮廓,控制参数包括数组和字典。...该图像由很多个方格组成,每个方格称为像素,每一个方格用一个数值来表示,像素点灰度可取很多个数值,8 位图像取值范围为 0~255 HALCON 图像数据类型有 10 种: 类型 描述 byte 即...为了更好地描述边缘亚像素轮席,HALCON 规定了两种不同亚像素轮廓:一种是插计算亚像素轮廓;另一种通过多边形通近方式得到亚像素轮廓。...Tuple是一个用于数据存储数据结构,一般情况下黑白图像 lmage区域 Region和像素轮(XLD)称为 HALCON 对象,也就是 HObject。...在 HALCON 中字典可以是 HObjet,即图像、区域、亚像素轮;也可以是数组。键可以是数字和字符中,HALCON字典还有一个句柄(Handle)作为这个字舞标识。

1.2K30

【愚公系列】2023年04月 Halcon机器视觉-仿射变换详解

取值列表:x,y Px (输入参数):变换固定点x坐标 Py (输入参数):变换固定点y坐标 HomMat2DSlant (...坐标 Py:(输入参数)原始点组y坐标 Qx:(输入参数)变换目的点组x坐标 Qy:输入参数)变换目的点组y坐标 HomMat2D:(输出参数)输出仿射变换矩阵...坐标 Py:(输入参数)原始点组y坐标 Qx:(输入参数)变换目的点组x坐标 Qy:(输入参数)变换目的点组y坐标 HomMat2D:(输出参数)输出仿射变换矩阵 dev_clear_window...坐标 Py:(输入参数)原始点组y坐标 Qx:(输入参数)变换目的点组x坐标 Qy:(输入参数)变换目的点组y坐标 HomMat2D:(输出参数)输出仿射变换矩阵...(如果从图像空间变换到物理空间,就是x方向像素单量) Sy (输出参数):y方向缩放因子(如果从图像空间变换到物理空间,就是y方向像素单量) Phi

98931

【工程应用四】 基于形状多目标多角度高速模板匹配算法进一步研究。

前面有两篇文章谈到了模板匹配算法,分别是【工程应用一】 多目标多角度快速模板匹配算法(基于NCC,效果无限接近Halcon中........)...选择水平方向实现最为简单和高效。...,而第二个图,扩展后图进行检测,会看到在无效区域有一些额外边缘出现,但是经过蒙版裁剪这些区域就消失了。...扩展: 整个表达式是一个归一化式子,因为模板进行了Canny筛选,但是原图对应位置是动态,如果在原图中遇到那种比较光滑地方(梯度很小),比如GxS = 1, GyS = 2,这样,无论模板对应处梯度如何...10、halcon有基于形状多目标、多角度、多缩放尺度模板检测,这个现在也在想,如何减少计算量,有点麻烦。

1.6K10

激光三角测量法在工业视觉检测上应用

德国SICK、AT相机是工业检测应用中用比较多两款3D相机了,最高行频都可以做到几十KHZ,以AT相机为例,具体参数如下: ?...相机选择 需要选择像素点数不低于80/0.1=800;对应行频不低于2000/0.1=20KHZ。 相机能达到最大行频,取决于ROI有效区域大小、曝光时间和轮廓提取算法等。...而ROI有效区域大小又取决于材料厚度范围,曝光时间一部分取决于材料材质(有的材料比如橡胶轮胎为黑色吸光材质,在同等光源亮度情况下,需要曝光时间要高一些) 2)镜头选择 这个跟2D一致。...(即高度越高物体,对应灰度越亮还是越暗)。...简单总结:相机自身安装是有方向,若激光在相机正方向上面,则高度越高物体,对应灰度越低;否则对应灰度越高。

1.2K21

超越OpenCV速度MorphologyEx函数实现(特别是对于二图,速度是CV4倍左右)。

至于是选择列方向分块矩形还是行方向,则和算法本身优化有一定关系,比如在本例中,由于SIMD特性,我们在计算腐蚀或者膨胀时候,利用有关G和H在垂直方向计算时可方便使用SIMD指令进行比较...,因此,选择列方向分块则更为有利。   ...那么对于二图像腐蚀和膨胀,我们在超越halcon速度图像腐蚀和膨胀,实现目前最快半径相关类算法(附核心源码) 一文中有提高一种更为特别的优化手段。那么这个手段但让也可以用到本例中来。...接下来每一行数据, 都必然是3个数字,每个数字之间用空格隔开, 第一个数据是指这个行所在行号(以0为下标起点),第二个数据只区域起点,  第三个数据只区域 终点。          ...接下来数据就是Halcon独有的了,我和CV都不具有这个功能,他还能指定structuring element 每个位置对应偏移量值,就在对应位置元素加上这个偏移量值作为计算腐蚀和膨胀依据

1.2K40

激光三角测量法在工业视觉检测上应用

使用普通面阵相机,需要自己提取轮廓线,并通过标定来重建深度图像,Halcon里面有现成例程进行实现。如果对行频要求不高、Z向精度要求不高场合,完全可以使用高速面阵相机来实现。...相机选择 需要选择像素点数不低于80/0.1=800;对应行频不低于2000/0.1=20KHZ。 相机能达到最大行频,取决于ROI有效区域大小、曝光时间和轮廓提取算法等。...而ROI有效区域大小又取决于材料厚度范围,曝光时间一部分取决于材料材质(有的材料比如橡胶轮胎为黑色吸光材质,在同等光源亮度情况下,需要曝光时间要高一些) 2)镜头选择 这个跟2D一致。...(即高度越高物体,对应灰度越亮还是越暗)。...简单总结:相机自身安装是有方向,若激光在相机正方向上面,则高度越高物体,对应灰度越低;否则对应灰度越高。

1.3K10

【基础篇】一步一步实现c#与halcon联合编程

右键解决方案依赖项,选择“添加引用”; ? c. 点击浏览,找到halcon安装目录下halcondonet.dll, 添加-》确定; ? d....右键项目“CountObjTool”,点击“添加” -》“现有项”,选择刚才导出程序文件; ? f....选择项目CountObj,右键"引用" - 》"添加引用"; b. 选择"项目" -》"CountObjTool"; ? c.选择"浏览" -》"halcondotnet.dll"; ?...勾选中下图加深两个halcon组件,并点击确定; ? f.工具会更新如下halcon显示控件; ? ? Step 7 : 软件界面设计 a.添加如下窗体控件; ?...; 右键项目”CountObj“,选择“设为启动项目”; 右键项目”CountObj“,选择”属性“,取消勾选”首选32位“;(64位halcon) ?

8.8K32

实战 | 粘连物体分割与计数应用(二)--基于距离变换+分水岭算法 HalconOpenCV实现比较

导读 本文主要介绍基于基于距离变换+分水岭算法实现粘连物体分割与计数方法,并对比Halcon与OpenCV实现差异。...实现结果: OpenCV实现结果: 对比与总结 【1】适用情形:距离变换 + 分水岭算法适用于一些粘连并不严重或粘连区域远比物体本身小情况(粘连严重或重叠部分过多则不适用); 【2】Halcon...OpenCV中距离变换特别要注意二化图像中物体部分中间不要有孔洞,如果有需要填充后再做距离变换,否则会影响距离变换效果。...分水岭算法需要自己做预处理,设置markers告诉分水岭算法哪里是前景物体,哪里是未知区域,哪里是背景,使用相对麻烦,有时候还可能出现难以分割情况,比如下图: Halcon分割结果: OpenCV...,方便阈值处理和距离变换时得到更好结果,以硬币分割为例: 【4】实际应用中没有万能方法,具体情况具体分析,选择合适方法使用。

5.6K32

Halcon HDEVELOP 工程导出集成到 C++ 应用程序

、系统变量 Halcon 导出到 C++ 在 Halcon 中调试和开发图像处理算法更加便利快捷 开发完成项目可以以工程或代码形式导出,导出后可以直接供 C++ 调用 通过工程导出 Halcon...工程,修改 Halcon 代码重新导出后不需要重新编译 C++ 工程即可重新运行,并带入新 Halcon 改动 通过代码形式导出 Halcon 工程更加灵活,但需要重新编译 Halcon 工程导出...Halcon 工程 通过 Halcon 导出工程 植入 VS 代码有个好处是修改 Halcon 代码后不需要重新编译 VS C++ 工程即可达到修改效果 如果需要修改 Halcon 代码,我们可以直接去调整导出...hdev 代码 例如我们仅筛选出比较大区域 修改导出 hdev 函数代码,添加筛选连通域语句,保存工程 threshold (Image, Region, MinGray, 255...代码导出 Halcon 也支持直接导出代码 同样示例,我们在导出时选择导出语言 语言选择 C++ 导出后发现在原始 hdev 文件旁边多了个 cpp 文件,就是我们导出代码

1.9K40

Halcon实例转OpenCV之实现给定区间二

Halconthreshold函数定义如下,提取低阈值和高阈值之间灰度 ?...简单来说,Halconthreshold函数是获取区间[a, b]之间灰度,OpenCVthreshold只能针对大于或者小于a或者b灰度处理,一个是双阈值,一个是单阈值。...比如下面这张图,我通过Halcon先转为灰度图,然后用Ctrl + 鼠标可以获取每个区块灰度,如下下图(灰度用黄色标出) ? ?...那么,如果我想获取灰色矩形区域,只要设置低阈值小于127且大于90,高阈值大于127且小于137即可,当然,用Halcon灰度直方图助手更快捷方便 ? ?...---- Halcon提供了这样方法,可以简单实现,那么OpenCV怎么实现呢?

1.3K20

【工程应用八】终极基于形状匹配方案解决(小模型+预生成模型+无效边缘去除+多尺度+各项异性+最小组件尺寸)

注意,这里旋转获得不仅仅是旋转后特征坐标位置(可能需要取整),而且特征本质属性(对于linemod,是量化到0和8之间角度,对于我们标准基于梯度计算式,则是归一化后X和Y方向梯度)也同步予以获取...,但是确实可以识别到,就是因为在模版图特征提取中,边缘那些纯色部分不含有有效边缘,在处理时把这部分区域就去除了,给了这些位于边缘之外目标可被找到概率。...这个东西我们也是借用了halcon一篇专利里算法,其大概意思如下图所示:        他首先计算所有特征点X和Y方向重心(X和Y方向坐标相加求平均值),然后再计算每个特征点和这个重心距离(绝对...五、Halcon计算相似度公式和linemod计算式关系 实际上,linemod里用到夹角余弦计算公式和halcon利用梯度算式实质是一样,借用一个网友贴图:        夹角余弦...七、最顶层候选点选择策略 这个是个很重要过程,他不仅影响到了算法速度,而且对结果准确性也会有直接关联。

45910

【工程应用九】再谈基于离散夹角余弦相似度指标的形状匹配优化(十六角度量化+指令集加速+目标只有部分在图像内识别+最小外接矩形识别重叠等)

在形状匹配中,我们提取了很多特征点,然后需要使用这些特征点对图像中有效区域范围目标进行得分统计,也就是说任何一个位置,都要计算所有特征点得分,并计总和,一个简单表示为: for (int Y =...2、计算原图每层金字塔图像角度量化时,对这个量化进行扩展,扩展部分量化填充前面说那个不在[0,15]之间无效,比如这里是255,这样,这些区域得分就是0。   ...五、其他一些我未公开讨论课题   1、16角度SimilarityLut如何设计,其实在halcon里有个metric参数,他有三种选择,使用极性、忽略全局极性、忽略局部极性。...5、还是候选点选择问题,在最顶层,目前我还是用某个角度下二维得分结果中选择得分大于最小得分要求,同时是5*5领域最大作为候选点,这种方式留下候选点还是有很多,对于只有旋转匹配,是否可以考虑在...3D(X方向、Y方向以及角度方向)空间里,选得分大于最小得分要求且是5*5*5领域最大呢,这样候选点肯定会少很多,但是代码编写似乎变得困难了很多,还有占用内存问题。

15910

实战 | 计算器数码管OCR数字识别(附源码)

实例来源 实例来源于51Halcon论坛,对应Halcon实现这里不做介绍,如下图,最终目的就是识别计算器显示数字内容。...初步思路:先提取显示区域ROI,然后使用EasyOCR或PaddleOCR直接识别。...实现步骤与演示 【1】通过HSV阈值筛选,分离液晶显示区域; 【2】轮廓筛选,精确定位出液晶显示区域; 【3】截取ROI后传给EasyOCR识别 【4】实现完整源码与注意事项 # -*- coding...+20,x-20:x+w+20].copy() cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),3) rect = (x, y, w, h)...ROI = img[y-20:y+h+20,x-20:x+w+20].copy() ROI原始大小识别结果: ROI扩大后识别结果: 2、截取ROI之后也可使用PaddleOCR方法识别,识别效果如下

2.7K20
领券