Halcon算子应用和技巧7

提示:若没有查找的算子,可以评论区留言,会尽快更新


前言

提示:可以使用搜索小工具搜索对应算子名称:

本篇博文主要用于记录学习Halcon中算子的应用场景,及其使用代码和图像展示。只讲通俗易懂使用方法,不讲原理,不讲原理,不讲原理,重要的事情说三遍。


提示:以下是本篇文章正文内容,下面案例可供参考,注意参数坐标的使用,能帮助你理解算子

一、Halcon应用?

Halcon 是一个强大的图像处理工具,该工具是为了解决机器视觉项目任务而创建的。

二、算子汇总

每一博文仅展示10个算子,点击此链接进行查询所有算子,并点击对应算子跳转相应博文。'
跳转链接

三、应用算子

61. gen_ellipse_contour_xld()

61.1. gen_rectangle2_contour_xld()

61.2. gen_arrow_contour_xld()

先上代码:

read_image (Image, 'D:/HALCON_learn/理论/51-60/瓶盖.jpg')
dev_open_window(0, 0, 512, 512, 'black', WindowHandle)
gen_image_proto (Image, ImageCleared, 125)
*生成椭圆轮廓
draw_ellipse(WindowHandle, Row, Column, Phi, Radius1, Radius2)
gen_ellipse_contour_xld(ContEllipse, Row, Column, Phi, Radius1, Radius2, 0, rad(360), 'positive', 1.5)
*生成矩形轮廓
draw_rectangle2(WindowHandle, Row1, Column1, Phi1, Length1, Length2)
gen_rectangle2_contour_xld (Rectangle, Row1, Column1, Phi1, Length1, Length2)
get_contour_xld(Rectangle, Row2, Col)
*生成线/箭头轮廓
draw_line (WindowHandle, Row11, Column11, Row21, Column2)
gen_arrow_contour_xld(Arrow, Row11, Column11, Row21, Column2, 15, 15)

解析
这几个算子均是生成常规形状轮廓
PS:生成箭头需要两端位置,所以先绘制线,至于箭头大小和形状可以通过最后两个参数设置,最后两个参数内部参数实现是矩形框宽和高
在这里插入图片描述


62. gen_contour_polygon_xld()

先上代码:

row1 := [210,294,267,210]
clo1 := [241,243,315,241]
gen_contour_polygon_xld(Contour, row1, clo1)

解析
生成多边形轮廓
PS:注意要想生成闭合的轮廓,最后一个参数需要和第一个参数一致,才能形成闭合的轮廓
在这里插入图片描述


63. gen_contours_skeleton_xld()

先上代码:

read_image (Image, 'D:/HALCON_learn/理论/51-60/瓶盖.jpg')
rgb1_to_gray(Image, GrayImage)
threshold (GrayImage, Region1, 100, 130)
connection(Region1, ConnectedRegions)
select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 2800, 99999)
fill_up(SelectedRegions, RegionFillUp)
boundary(RegionFillUp, RegionBorder, 'inner')
skeleton(RegionBorder, Skeleton)
gen_contours_skeleton_xld(Skeleton, Contours, 1, 'filter')

解析
生成骨架的轮廓
PS:这样生成的轮廓均是在像素中间,会有半个像素的偏差
在这里插入图片描述


64. disp_message ()

先上代码:

read_image (Image, 'D:/HALCON_learn/理论/51-60/瓶盖.jpg')
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
dev_display(Image)
disp_message (WindowHandle, '这是一个瓶盖' , 'window', 70, 192, 'black', 'true')

解析
在指定窗口的指定位置显示指定文字
在这里插入图片描述


65. set_display_font()

先上代码:

read_image (Image, 'D:/HALCON_learn/理论/51-60/瓶盖.jpg')
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
dev_display(Image)
set_display_font(WindowHandle,30, 'sans', 'false', 'true')
disp_message (WindowHandle, '这是一个瓶盖' , 'window', 70, 192, 'black', 'true')

解析
设定在窗口上显示的文字样式和字体大小
在这里插入图片描述


66. threshold_sub_pix()

先上代码:

read_image (Image, 'D:/HALCON_learn/理论/61-70/机械产品.jpg')
rgb1_to_gray(Image, GrayImage)
threshold_sub_pix(GrayImage, Border, 128)

解析
按照指定的阈值进行灰度边缘提取
PS:该方法不常用,选取的区域死板,并且会有多个小的离散边缘被提取,单位是亚像素
在这里插入图片描述


67. edges_sub_pix()

先上代码:

read_image (Image, 'D:/HALCON_learn/理论/61-70/机械产品.jpg')
rgb1_to_gray(Image, GrayImage)
*亚像素边缘提取
edges_sub_pix(GrayImage, Edges, 'canny', 15, 20, 40)

解析
常用的一种边缘提取方法,亚像素边缘提取
PS:常用canny,alpha参数越大,图像平滑越强,越容易丢失细节,对于非canny滤波的其他滤波器,该参数作用恰恰相反
PS:想要细节alpha参数就设置小一点,其他滤波相反
在这里插入图片描述


68. lines_gauss()

read_image (Image, 'D:/HALCON_learn/理论/61-70/机械产品.jpg')
rgb1_to_gray(Image, GrayImage)
*高斯找线
lines_gauss(GrayImage, Lines, 2, 3, 8, 'light', 'true', 'bar-shaped', 'true')

解析
采用高斯平滑方式找线
PS :高斯参数sigma越大,平滑越强,细节丢失多,light/dark:黑底找白线\白底找黑线
PS:算子耗时,最好配合reduce_domain()使用,减少时间消耗,其输出也是xld
PS:缺陷检测常用,像划痕
在这里插入图片描述


69. lines_gauss() VS edges_sub_pix()

先上代码:

read_image (Image1, 'D:/HALCON_learn/理论/61-70/血管.png')
rgb1_to_gray(Image1, GrayImage1)
edges_sub_pix(GrayImage1, Edges1, 'canny', 1.5, 3, 10)
lines_gauss (GrayImage1, Lines1, 1, 0.1, 1.3, 'dark', 'true', 'bar-shaped', 'true')

解析
仔细观察边缘和线区别,边缘在黑白交界处,而线在黑色的中间
在这里插入图片描述


70. union_cocircular_contours_xld()

先上代码:

read_image (Image, 'D:/HALCON_learn/理论/61-70/工件2.png')
rgb1_to_gray(Image, GrayImage)
edges_sub_pix(GrayImage, Edges, 'canny', 0.6, 10, 40)
union_cocircular_contours_xld(Edges, UnionContours, 0.5, 0.1, 0.2, 30, 10, 10, 'true', 1)

解析
合并共圆或近似共圆的边缘形成一个单独的圆形
PS:某些情况下边缘算子会导致边缘结果不连续
在这里插入图片描述


以上内容陆续更新。。。

内容如有错误之处,望不吝指出,谢谢

以上内容陆续更新。。。

  • 13
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Halcon算子中文手册CHM是Halcon系统提供的一种在线帮助文档格式。CHM是“Compiled HTML Help”的缩写,即编译的HTML帮助文档。 Halcon算子中文手册CHM是为了方便中文用户学习和使用Halcon算子而特别准备的。它包含了Halcon算子的详细说明、用法示例以及相关函数的参数说明。通过查阅CHM手册,用户可以了解各种算子的作用、输入输出参数的含义,以及如何在Halcon中使用它们。这对于Halcon初学者来说是一个很好的学习工具。 CHM手册的使用非常简单方便,用户只需要在Halcon界面中点击相关算子的帮助按钮,就可以快速打开相应的CHM手册页面。在CHM手册页面中,用户可以通过目录、索引、搜索等方式浏览和查找需要的信息。CHM手册的页面包含了算子的详细解释和代码示例,帮助用户更好地理解和应用算子Halcon算子中文手册CHM的提供,为中文用户提供了一种方便、快捷的学习和查阅资源。它不仅节省了用户在网上搜索资料的时间,还提供了更专业、系统、全面的算子说明,从而帮助用户更加高效地使用Halcon进行图像处理和分析。无论是新手还是有一定经验的用户,都能通过CHM手册快速查找所需的信息,提升开发和应用的效率。 ### 回答2: Halcon算子中文手册CHM是一个用于参考和学习Halcon算子的详细文件。CHM是Halcon提供的一种帮助文档格式,可以在Windows操作系统上浏览和搜索。 这个中文手册提供了Halcon算子的描述、参数、使用方法以及示例代码等内容。用户可以通过搜索或按照算子分类来查找所需的算子。同时,手册还提供了算子的示例图像,帮助用户理解算子的作用和效果。 使用这个手册,用户可以更加方便地了解和学习Halcon算子。无论是初学者还是有一定经验的用户,都可以通过手册来查找所需的算子,并且了解该算子的具体用法。手册的详细信息和示例代码有助于用户更好地理解算子的功能和使用场景。 总之,Halcon算子中文手册CHM是一个非常有价值的工具,为用户提供了方便快捷的查阅方式,帮助用户学习和运用Halcon算子,提升图像处理的能力。 ### 回答3: Halcon算子中文手册CHM是Halcon软件的一个辅助文档,用于帮助用户快速查询和理解Halcon算子的使用方法和功能。CHM是一种经典的Windows帮助文档格式,可以在Windows系统上直接打开和阅读。 Halcon算子中文手册CHM包含了Halcon软件中各种不同类型的算子的详细说明和示例代码,涵盖了图像处理、机器视觉、测量、工业自动化等众多领域。用户可以根据自己的需求,通过关键字搜索或者按照分类浏览的方式找到所需的算子,并了解其参数设置和使用方法。 使用Halcon算子中文手册CHM可以帮助用户更方便地学习和掌握Halcon算子的使用技巧,从而更高效地完成图像处理和分析任务。用户可以通过手册中的示例代码了解算子的实际应用场景,并根据自己的需求进行修改和优化。 总之,Halcon算子中文手册CHM是一本非常实用的参考资料,对于使用Halcon进行图像处理的用户来说,是不可或缺的帮助工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值