计算机视觉OpenCV函数pyrMeanShiftFiltering
参考大佬-牧野-的
https://blog.csdn.net/dcrmg/article/details/52705087
Opencv均值漂移pyrMeanShiftFiltering彩色图像分割流程剖析
meanShfit均值漂移算法是一种通用的聚类算法,它的基本原理是:对于给定的一定数量样本,任选其中一个样本,以该样本为中心点划定一个圆形区域,求取该圆形区域内样本的质心,即密度最大处的点,再以该点为中心继续执行上述迭代过程,直至最终收敛。可以利用均值偏移算法的这个特性,实现彩色图像分割,
Opencv中对应的函数是pyrMeanShiftFiltering。这个函数严格来说并不是图像的分割,而是图像在色彩层面的平滑滤波,它可以中和色彩分布相近的颜色,平滑色彩细节,侵蚀掉面积较小的颜色区域,
void pyrMeanShiftFiltering( InputArray src, OutputArray dst,
double sp, double sr, int maxLevel=1,
TermCriteria termcrit=TermCriteria(
TermCriteria::MAX_ITER+TermCriteria::EPS,5,1) );
第一个参数src,输入图像,8位,三通道的彩色图像,并不要求必须是RGB格式,HSV、YUV等Opencv中的彩色图像格式均可;
第二个参数dst,输出图像,跟输入src有同样的大小和数据格式;
第三个参数sp,定义的漂移物理空间半径大小;
第四个参数sr,定义的漂移色彩空间半径大小;
第五个参数maxLevel,定义金字塔的最大层数;
第六个参数termcrit,定义的漂移迭代终止条件,可以设置为迭代次数满足终止,迭代目标与中心点偏差满足终止,或者两者的结合;
pyrMeanShiftFiltering函数的执行过程是这样的:
- 迭代空间构建
- 求取迭代空间的向量并移动迭代空间球体后重新计算向量,直至收敛(一个图像,然后选取一个球形,求得所有点相对于中心点的色彩向量之和后,移动选取的球形继续操作,有点类似卷积层)
- 更新输出图像dst上对应的初始原点P0的色彩值为本轮迭代的终点Pn的色彩值,如此完成一个点的色彩均值漂移。
4.输入图像src上其他点,依次执行步骤1,、2、3,遍历完所有点位后,整个均值偏移色彩滤波完成
半径越大,图像的细节就丢失的越多
下一篇: EL表达式的 11个隐含对象 介绍
推荐阅读
-
计算机视觉OpenCV函数pyrMeanShiftFiltering
-
OpenCV计算机视觉实战(Python)| 11、Harris角点检测
-
【碎片知识(1)· 计算机视觉基础】利用OpenCV实现图像的“Hello, world!”
-
计算机视觉之OpenCV中的图像处理2(18章-20章)
-
计算机视觉基础系列(python与opencv的操作与运用)(三)--像素操作
-
计算机视觉 OpenCV Android | 图像操作之 统计排序滤波、边缘保留滤波
-
计算机视觉之OpenCV中的图像处理1(13章-17章)
-
python【Opencv计算机视觉库】opencv模块cv2常用函数用法(全)
-
计算机视觉(1)关于cvThreshold二值化函数
-
OpenCV计算机视觉实战(Python)| 02、图像基本操作