MATLAB中四种形态学基本运算
腐蚀
腐蚀是一种消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义的物体。
用3X3的结构元素,扫描图像的每一个像素,用结构元素与其覆盖的二值图像做“与”操作,如果都为1,结果图像的该像素为1。否则为0。结果会使二值图像小一圈。
简单讲,腐蚀把白区域变细。
原图
腐蚀图
腐蚀函数:erode
BW2= erode(BW1,SE)
BW2= erode(BW1,SE,…,n)
膨胀
膨胀是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程,可以用来填补物体中的空洞。
用3X3的结构元素,扫描图像的每一个像素,用结构元素与其覆盖的二值图像做“与”操作,如果都为0,结果图像的该像素为0,。否则为1。结果使二值图像扩大一圈。
简单讲,膨胀使白区域变粗。
膨胀图
膨胀函数:dilate
BW2=dilate(BW1,SE)
BW2=dilate(BW1,SE,…,n)
开运算
先腐蚀后膨胀的过程称为开运算。
用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显的改变其面积。
简单讲,开运算可去除白色噪点。
开运算图
开运算函数:imopen
IM2=imopen(IM,SE)
IM2=imopen(IM,NHOOD)
闭运算
先膨胀后腐蚀的过程称为比运算。
用来填充物体内细小空间、连接邻近物体、平滑其边界的同时并不明显改变其面积。
简单讲,闭运算可去除黑色噪点。
闭运算图
闭运算函数:imclose函数
IM2=imclose(IM,SE)
IM2=imclose(IM,NHOOD)
bwmorph函数
此函数可执行以上四种操作
BW2=bwmorph(BW1,operation)
BW2=bwmorph(BW1,operation,n)
其中,operation可为以下操作:
‘clean’:除去孤立的像素(被0包围的1)
‘close’:计算二值闭合
‘dilate’:用结构元素计算图像膨胀
‘erode’:用结构元素计算图像侵蚀