一、腐蚀与膨胀
腐蚀:删除对象边界某些像素,具有收缩图像作用 消除图像边缘和杂点
膨胀:添加对象边界某些像素,具有扩大图像作用
腐蚀算法:使用一个nXn结构元素去扫描图像中的每一个像素。用结构元素与其覆盖的二值图像做“与”操作,如果都为1,这图像的该像素为1,否则为0. 腐蚀之后,图像边界向内收缩
膨胀算法:使用一个nXn结构元素去扫描图像中的每一个像素。用结构元素与其覆盖的二值图像做“与”操作,如果都为0,这图像的该像素为0,否则为1. 膨胀之后,图像边界向外扩大
Halcon腐蚀膨胀算子_lesha520的专栏-CSDN博客_halcon 膨胀
read_image(Image,'E:/C/Halcon/1.jpg')
rgb1_to_gray(Image,GrayImage)
binary_threshold(GrayImage,DarkArea,'max_separability','dark',UsedThreshold)
#腐蚀
erosion_circle(DarkArea,Out,1.5)
#膨胀
dilation_circle(DarkArea,Out,1.5)
二、开运算与闭运算
开运算相当于对图像先进行腐蚀运算再进行膨胀运算,可以消除离散点和"毛刺",可以将两个物体分开。
闭运算相当于对图像先进行膨胀运算再进行腐蚀运行,可以填充图像的内部孔洞和图像的凹角点,可以把两个邻近的目标连接起来。
#开运算
gen_circle(StruvtElement,6,6,2)
opening(Image,StruvtElement,Out)
#闭运算
closing(Image,StruvtElement,Out2)
三、顶帽与黑帽
图像顶帽(或图像礼帽)运算是原始图像减去图像开运算的结果,得到图像的噪声。如下图所示:
顶帽运算:原始图像 — 图像开运算
图像黑帽运算是图像闭运算操作减去原始图像的结果,得到图像内部的小孔,或者前景色中的小黑点。如下图所示:
黑帽运算:闭运算 — 原始图像
#顶帽运算
top_hat(Image,StruvtElement,Out3)
#黑帽运算
bottom_hat(Image,StruvtElement,Out4)
四、灰度图像的形态学运算
灰度图的腐蚀、膨胀等形态学操作前面加个gray就可以了