‘壹’ 图像膨胀腐蚀算法原理
膨胀和腐蚀的主要用途:
消除噪声;
分割出独立的图像元素,在图像中连接相邻的元素;
寻找图像中明显的极大值或极小值区;
求出图像的梯度;
【注】:
腐蚀和膨胀是对像素值大的部分而言的,即高亮白部分而不是黑色部分;
膨胀是图像中的高亮部分进行膨胀,领域扩张,效果图拥有比原图更大的高亮区域;
腐蚀是图像中的高亮部分被腐蚀掉,领域缩减,效果图拥有比原图更小的高亮区域;
2
/9
膨胀原理:
膨胀:求局部最大值;
①定义一个卷积核B,
核可以是任何的形状和大小,且拥有一个单独定义出来的参考点-锚点(anchorpoint);
通常和为带参考点的正方形或者圆盘,可将核称为模板或掩膜;
②将核B与图像A进行卷积,计算核B覆盖区域的像素点最大值;
③将这个最大值赋值给参考点指定的像素;
因此,图像中的高亮区域逐渐增长。
3
/9
腐蚀原理:
腐蚀:局部最小值(与膨胀相反);
①定义一个卷积核B,
核可以是任何的形状和大小,且拥有一个单独定义出来的参考点-锚点(anchorpoint);
通常和为带参考点的正方形或者圆盘,可将核称为模板或掩膜;
②将核B与图像A进行卷积,计算核B覆盖区域的像素点最小值;
③将这个最小值赋值给参考点指定的像素;
因此,图像中的高亮区域逐渐减小。
4
/9
OpenCV中膨胀函数-dilate()
格式:
void dilate(
InputArray src,//输入
OutputArray dst, //输出
InputArray kernel, //核大小
Point anchor=Point(-1,-1),// 锚位置,(-1,-1)为中心
int iterations=1, //迭代次数
int borderType=BORDER_CONSTANT,//图像边界像素模式
const Scalar& borderValue=morphologyDefaultBorderValue()//边界值
)
【注】:
关于核,一般配合getStructuringElement()使用;
getStructuringElement():返回指定形状和尺寸的结构元素;
格式:
getStructuringElement(int shape, Size ksize, Point anchor=Point(-1,-1));
参数:
shape:表核的形状,矩形MORPH_RECT;交叉形MORPH_CROSS;椭圆形MORPH_ELLIPSE;
ksize:核尺寸大小;
anchor:锚点的位置,锚点只影响形态学运算结果的偏移;
5
/9
OpenCV中腐蚀函数-erode()
格式:
void erode(
InputArray src,//输入
OutputArray dst, //输出
InputArray kernel, //核大小
Point anchor=Point(-1,-1),// 锚位置,(-1,-1)为中心
int iterations=1, //迭代次数
int borderType=BORDER_CONSTANT,//图像边界像素模式
const Scalar& borderValue=morphologyDefaultBorderValue()//边界值
)
6
/9
形态学开运算:
开运算(Open Operation):先腐蚀后膨胀的过程;
功能:
消除小物体;
在纤细处分离物体;
平滑较大的边界并不明显改变其面积;
7
/9
形态学闭运算:
闭运算(Closing Openration),先膨胀后腐蚀;
功能:
排除小型黑洞(黑斑);
8
/9
OpenCV:morphologyEx()
功能:morphologyEx函数利用基本的膨胀和腐蚀技术,来执行更加高级形态学变换,
如开闭运算,形态学梯度,“顶帽”、“黑帽”等等。
‘贰’ 数字图像处理(c++ opencv):形态学图像处理-图像膨胀
在数字图像处理的世界中,C++与OpenCV的结合为我们提供了强大的工具,特别是形态学操作,如图像膨胀。其核心目标是增强图像中的目标或连接它们,使它们在视觉上更为明显。
膨胀操作的关键在于结构元,一个白色的像素模板,它会在图像中移动并替换其周围与结构元相匹配的像素。这导致了一个有趣的现象:对于白色背景,膨胀会让黑色目标区域变小,反之,对于黑色背景,白色目标区域会扩大。这本质上是由于结构元的白色像素会扩张图像中的白色区域,而黑色区域会受到腐蚀。
要实现图像膨胀,首先需要调用getStructuringElement函数来创建结构元,它接受多个参数如形状、大小等。然后,dilate函数是实际进行膨胀操作的函数,它接收图像数据、结构元、迭代次数等参数。通过这两个函数,我们可以灵活地控制膨胀的强度和效果。
‘叁’ python中开闭运算函数
在Python中,开运算和闭运算通常使用OpenCV库中的morphologyEx函数来实现。
开运算:
闭运算:
总结:
‘肆’ 图像处理知识汇总(一)
图像处理知识汇总:
图像滤波:
线性滤波器:
线性滤波与非线性滤波:
其他滤波器:
边缘检测:
特征提取与匹配:
形态学操作:
其他图像处理技术:
OpenCV相关:
以上内容涵盖了图像处理中的基础概念、滤波方法、边缘检测、特征提取与匹配、形态学操作以及其他相关技术,并简要介绍了OpenCV的一些基本内容。