转战Halcon日记【4】-- 形态学处理

今天我来学习一下形态学处理,我们的经常用的形态学处理有:膨胀/腐蚀/开运算/闭运算

还是以一个例子来介入

输入图

 

 

输出图

 

 

 

 

* 读取图像
read_image (Image, 'C:/Users/guopei/Desktop/d188b1f6a6c966add58128d9241688e.jpg')
*rgb图转换成灰度图片
rgb1_to_gray(Image, GrayImage)
* 二值化
threshold (GrayImage, Regions, 0, 122)
* 填充一下
fill_up(Regions, RegionFillUp)
* 分开各个区域
connection(RegionFillUp, ConnectedRegions)
* 筛选区域
select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 400000, 999999)
* 闭运算
* 第一个参数是传入的区域,第二参数是闭运算之后的区域
* 第三个/第四个参数分别是闭运算用的矩形的宽和高
* 当然还有closing_circle(SelectedRegions, RegionClosing, 3.5),第三个参数是闭运算用的圆的半径
* 闭运算相当于先膨胀后腐蚀
closing_rectangle1(SelectedRegions, RegionClosing, 100, 100)

* 开运算
* 第一个参数是传入的区域,第二参数是闭运算之后的区域
* 第三个/第四个参数分别是开运算用的矩形的宽和高
* 当然还有opening_circle(SelectedRegions, RegionClosing, 3.5),第三个参数是开运算用的圆的半径
* 开运算相当于先腐蚀后膨胀
opening_rectangle1(RegionClosing, RegionOpening, 10, 400)


* 获取区域对应的原图
reduce_domain(GrayImage, RegionOpening, ImageReduced)

 

我们来再来看看闭运算和开运算之前之后的效果图

                                                                                                         

 

图一是闭运算之前                                                                                                              图二是闭运算之后                                                                                                                                 图三是开运算之后

好了看看截图界面吧

 

posted @ 2022-06-29 16:33  gammalog  阅读(296)  评论(0编辑  收藏  举报