Halcon算子应用和技巧4

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


前言

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

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


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

一、Halcon应用?

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

二、算子汇总

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

三、应用算子

31. paint_region()

先上代码:

read_image(Image, 'printer_chip/printer_chip_01')
gen_rectangle1(Rectangle,428, 252, 796, 640)
paint_region(Rectangle, Image, ImageResult, 125, 'fill')
write_image(ImageResult, 'tiff', 0, 'test')

解析:
将指定区域写入对应要覆盖的图像区域中,最后图像保存就是覆盖后的结果
在这里插入图片描述


32. sub_image()

先上代码:

read_image(Image, 'printer_chip/printer_chip_01')
gen_rectangle1(Rectangle,428, 252, 796, 640)
* 参数:255 / 0
paint_region(Rectangle, Image, ImageResult, 255, 'fill')
sub_image(Image, ImageResult, ImageSub, 1, 128)

解析
图像像素灰度值相减,并按照公式计算最终灰度值(具体公式看算子帮助);图一减图二得到图三
在这里插入图片描述


33. illuminate()

先上代码”:

read_image(Image, 'D:/HALCON_learn/理论/31-40/明暗变化.jpg')
illuminate(Image, ImageIlluminate, 101, 101, 0.7)

解析:
其也是一种图像增强,面对明暗差异大的图像,可以调整亮度,抑制亮区域,提高暗区域,使得整体观感上升,自行观察下图差异(具体灰度计算公式参考算子帮助)
在这里插入图片描述


34. gen_contour_region_xld()

先上代码:

read_image(Image, 'D:/HALCON_learn/理论/31-40/明暗变化.jpg')
threshold(Image, Region, 128, 255)
gen_contour_region_xld(Region, Contours, 'border')

解析
生成区域的轮廓,是XLD类型
PS:用boundary提取区域边缘输出的是区域(region),而轮廓分割需输入xld轮廓,所以以此转换。
在这里插入图片描述


35. gen_region_contour_xld()

先上代码

read_image(Image, 'D:/HALCON_learn/理论/31-40/明暗变化.jpg')
threshold(Image, Region, 125, 255)
gen_contour_region_xld(Region, Contours, 'border')
gen_region_contour_xld(Contours, Region1, 'filled')

解析:
作用和gen_contour_region_xld()恰恰相反,从轮廓生成区域,最后一张图已经是不同的区域,和第二张图区分
在这里插入图片描述


36. gen_image_proto()

先上代码:

read_image(Image, 'D:/HALCON_learn/理论/31-40/明暗变化.jpg')
gen_image_proto(Image, ImageCleared, 128)

解析:
以特定灰度值生成和输入图像尺寸一样大小的灰度图像
PS:配合paint_region(),将区域转成图像
在这里插入图片描述


37. select_shape_xld()

先上代码:

read_image(Image, 'D:/HALCON_learn/理论/31-40/明暗变化.jpg')
threshold(Image, Region, 128, 255)
gen_contour_region_xld(Region, Contours, 'border')
select_shape_xld(Contours, SelectedXLD, 'area', 'and', 358000, 999999)

解析:
侧重于根据轮廓构成的形状(图形)特征进行选择
PS:其可用的形状特征参数很多,面积 长度 坐标等
在这里插入图片描述


38. select_contours_xld()

先上代码:

read_image(Image, 'D:/HALCON_learn/理论/31-40/明暗变化.jpg')
threshold(Image, Region, 128, 255)
gen_contour_region_xld(Region, Contours, 'border')
select_contours_xld(Contours, SelectedContours, 'contour_length', 0.5,4000, -0.5, 0.5)

解析:
侧重于根据轮廓自身的特征进行选择,比如长度,方向等
PS:区分和轮廓形状特征区别,有时他们二者均可用于选择轮廓,二者侧重点不同
在这里插入图片描述


39. smallest_circle()

先上代码:

read_image(Image, 'D:/HALCON_learn/理论/31-40/明暗变化.jpg')
gen_rectangle1(Rectangle, 544, 354, 841, 825)
dev_set_color('green')
*最小外接圆
smallest_circle(Rectangle, Row, Column, Radius)
gen_circle(Circle, Row, Column, Radius)

解析:
生成某一区域的最小外接圆
在这里插入图片描述


40. inner_circle()

先上代码:

read_image(Image, 'D:/HALCON_learn/理论/31-40/明暗变化.jpg')
gen_rectangle1(Rectangle, 544, 354, 841, 825)
dev_set_color('green')
*最大内接圆
inner_circle(Rectangle, Row1, Column1, Radius1)
dev_set_color('black')
gen_circle(Circle1, Row1, Column1, Radius1)

解析:
生成某一区域的最大内接圆
PS:若区域中可以多个,一般优先输出左上角的
在这里插入图片描述


以上内容陆续更新。。。

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

以上内容陆续更新。。。

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值