openCV3.0 C++ 学习笔记补充(自用 代码+注释)---持续更新 二(51-)

15 篇文章 3 订阅
11 篇文章 7 订阅

环境:OpenCV3.2.0 + VS2015

51、Mean-Shift算法分割图像 cv::pyrMeanShiftFiltering()

参考链接:【从零学习OpenCV 4】分割图像——Mean-Shift分割算法

Mean-Shift算法又被称为均值漂移法,是一种基于颜色空间分布(彩色图像的像素值)图像分割算法。该算法的输出是一个经过滤色的“分色”图像,其颜色会变得渐变,并且细纹纹理会变得平缓(颜色分布平滑的图像)。

// pyrMeanShiftFiltering()函数原型
void cv::pyrMeanShiftFiltering(InputArray  src,			//待分割的输入图像,必须是三通道CU_8U的彩色图像
                               OutputArray  dst,		//分割后的输出图像,与输入图像具有相同的尺寸和数据类型
                               double  sp,				//滑动窗口的半径
                               double  sr,				//滑动窗口颜色幅度
                               int  maxLevel = 1,		//分割金字塔缩放层数
                               TermCriteria  termcrit = //迭代算法终止条件
                              TermCriteria(TermCriteria::MAX_ITER+TermCriteria::EPS, 5, 1)  
                              )

TermCriteria变量可以通过TermCriteria()函数进行赋值,函数原型如下:

// TermCriteria()函数原型
cv::TermCriteria::TermCriteria(int  type,		//终止条件的类型标志,可以选择的参数及含义在表8-6中给出
                               int  maxCount,	//最大迭代次数或者元素数
                               double  epsilon 	//迭代算法停止时需要满足的精度或者参数变化
                               )

该函数可以表示迭代算法的终止条件,主要分为满足迭代次数和满足计算精度两种。

表8-6 TermCriteria()函数中终止条件的类型标志可选参数及含义
	//分割处理
	Mat result1, result2;
	TermCriteria T10 = TermCriteria(TermCriteria::COUNT|TermCriteria::EPS, 10, 0.1); 
	pyrMeanShiftFiltering(img, result1, 20, 40, 2, T10);  //第一次分割
	pyrMeanShiftFiltering(result1, result2, 20, 40, 2, T10);  //第一次分割的解雇再次分割 
	
	//显示分割结果
	imshow("img", img);
	imshow("result1", result1);
	imshow("result2", result2);
	
	//对图像提取Canny边缘
	Mat imgCanny,result1Canny,result2Canny;
	Canny(img, imgCanny, 150, 300);
	Canny(result1, result1Canny, 150, 300);
	Canny(result2, result2Canny, 150, 300);
	
	//显示边缘检测结果
	imshow("imgCanny", imgCanny);
	imshow("result1Canny", result1Canny);
	imshow("result2Canny", result2Canny);

52、

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值