网站建设高校,网络架构部,东莞网站推广的公司,wordpress 回复后可见文章目录 简介实战 简介
腐蚀和膨胀是图像形态学处理的基本运算#xff0c;这两种运算的复合运算构成了开和闭#xff0c;而腐蚀、膨胀与原图之间的加减操作#xff0c;则构成了形态学梯度、礼帽和黑帽计算。
由于这几种函数均基于腐蚀和膨胀#xff0c;所以其参数均与开… 文章目录 简介实战 简介
腐蚀和膨胀是图像形态学处理的基本运算这两种运算的复合运算构成了开和闭而腐蚀、膨胀与原图之间的加减操作则构成了形态学梯度、礼帽和黑帽计算。
由于这几种函数均基于腐蚀和膨胀所以其参数均与开闭运算相同
形态学梯度 morphological_gradient(input, sizeNone, footprintNone, structureNone, outputNone, mode‘reflect’, cval0.0, origin0)礼帽运算 white_tophat(input, sizeNone, footprintNone, structureNone, outputNone, mode‘reflect’, cval0.0, origin0)黑帽运算 black_tophat(input, sizeNone, footprintNone, structureNone, outputNone, mode‘reflect’, cval0.0, origin0)拉普拉斯变换 morphological_laplace(input, sizeNone, footprintNone, structureNone, outputNone, mode‘reflect’, cval0.0, origin0)
各参数含义如下
size 为滤波模板mode 可选reflect,constant,nearest,mirror, wrap边缘填充方式cval 边缘填充值structure 为数组类型表示构造元素可以理解为是卷积模板output 与输入相同维度的数组可以存下结果orgin 过滤器设置默认为0
其中礼帽又叫顶帽等于原图减去开运算黑帽又叫底帽为原图减去闭运算。
实战
下面用scipy.misc中的楼梯图像对礼帽、黑帽以及形态学梯度函数进行测试方便起见做一个函数字典funcs分别存储自身映射、礼帽、黑帽函数分别对楼梯图像进行处理并绘图。
import scipy.ndimage as sn
from scipy.misc import ascent
import matplotlib.pyplot as pltimg ascent()
img img[350:500, 400:500]
funcs {original: lambda x, tmp:x,white : sn.white_tophat,black : sn.black_tophat,
}fig plt.figure()
for i, key in enumerate(funcs):ax fig.add_subplot(1,3,i1)plt.imshow(funcs[key](img, (5,5)), cmapplt.cm.gray)plt.title(key)plt.axis(off)plt.show()效果如下 形态学梯度为膨胀图减去腐蚀图这种操作会把图像的边缘提取出来scipy.ndimage中提供来了gradient和laplace两个函数
img (img 125)*1funcs {original: lambda x, tmp:x,gradient : sn.morphological_gradient,laplace : sn.morphological_laplace,
}fig plt.figure()
for i, key in enumerate(funcs):ax fig.add_subplot(1,3,i1)plt.imshow(funcs[key](img, (3,3)), cmapplt.cm.gray)plt.title(key)plt.axis(off)plt.show()效果如下