转战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)
我们来再来看看闭运算和开运算之前之后的效果图
图一是闭运算之前 图二是闭运算之后 图三是开运算之后
好了看看截图界面吧