halcon图像膨胀—dilation1

前言

针对阈值分割后的图像,如果存在一些孔洞需要去填充,则可以使用图像膨胀的方式来处理。

1、图像膨胀原理

原始图像A (前景为1/X)

. . . . . . . . .

. . . . . . . . .

. . X X X . . . .

. . X X X . . . .

. . . . . . . . .

. . . . . . . . .

圆形结构元素B (3x3圆形,原点在中心)

. . .

. X .

X X X

. X .

. . .

膨胀的工作流程就像用这个"探针"去扫描图像的每一个像素:

定位:将结构元素的中心点(或称"锚点")对准图像中一个待考察的像素。

探测:查看以该像素为中心、结构元素覆盖的所有邻域像素。

判定:如果结构元素覆盖的区域内,有一个或多个像素是白色的,那么中心像素的输出值就置为白色(被"膨胀"了)。否则,保持原状。

. . . . . . . . .

. . .X X X . . .

. X X X X X . . .

. X X X X X . . .

. . .X X X . . .

. . . . . . . . .

2、halcon算子应用

csharp 复制代码
dev_open_file_dialog ('read_image', 'default', 'default', Selection)
read_image (Image, Selection)
mean_image (Image, ImageMean, 15, 15)
threshold (Image, Region, 128, 255)
gen_circle (struct, 10, 10, 10)
dilation1 (Region, struct, RegionDilation, 1)

图像膨胀一般发生在阈值分割之后,上面的dilation1就是发生在阈值分割threshold 之后,dilation1 算子共有4个参数。

第1个参数是输入区域(注意不是图像)

第2个参数是自定义的结构元素,这里就是定义的圆形结构元素,gen_circle定义了一个圆心为(10,10),半径为10的圆形结构元素

第3个参数是膨胀后得到的区域

第4个参数是迭代次数,也就是膨胀操作执行的次数

3、dilation1 膨胀图像处理后效果

1)处理前

1)处理后

能看出很多的小孔都被填充了,只剩下一些原来就比较大的孔。

马工撰写的年入30万+C#上位机项目实战必备教程(点击下方链接即可访问文章目录)

1、《C#串口通信从入门到精通》

2、《C#与PLC通信从入门到精通 》

3、《C# Modbus通信从入门到精通》

4、《C#Socket通信从入门到精通 》

5、《C# MES通信从入门到精通》

6、《winform控件从入门到精通》

7、《C#操作MySql数据库从入门到精通》

以上教程CSDN订阅已超过2000+~

相关推荐
小O的算法实验室18 小时前
2026年ASOC,基于深度强化学习的无人机三维复杂环境分层自适应导航规划方法,深度解析+性能实测
算法·无人机·论文复现·智能算法·智能算法改进
郭涤生19 小时前
STL vector 扩容机制与自定义内存分配器设计分析
c++·算法
周杰伦fans19 小时前
C# required 关键字详解
开发语言·网络·c#
༾冬瓜大侠༿19 小时前
vector
c语言·开发语言·数据结构·c++·算法
Ricky111zzz20 小时前
leetcode学python记录1
python·算法·leetcode·职场和发展
汀、人工智能20 小时前
[特殊字符] 第58课:两个正序数组的中位数
数据结构·算法·数据库架构··数据流·两个正序数组的中位数
liu****20 小时前
第16届省赛蓝桥杯大赛C/C++大学B组(京津冀)
开发语言·数据结构·c++·算法·蓝桥杯
汀、人工智能20 小时前
[特殊字符] 第79课:分割等和子集
数据结构·算法·数据库架构·位运算·哈希表·分割等和子集
汀、人工智能20 小时前
[特殊字符] 第74课:完全平方数
数据结构·算法·数据库架构·图论·bfs·完全平方数
CoderCodingNo20 小时前
【GESP】C++四、五级练习题 luogu-P1177 【模板】排序
数据结构·c++·算法