阈值分割方法总结

阈值是界限的意思,阈值分割就是以一个合适的像素值作为界限将图像处理成高对比度、容易识别的图像的一种方法。
threshold()

double cv::threshold(
    cv::InputArray src, // 输入图像
    cv::OutputArray dst, // 输出图像
    double thresh, // 阈值
    double maxValue, // 向上最大值
    int thresholdType // 阈值化操作的类型 
)

在这里插入图片描述
举个例子理解下thresholdType,拿第一种方法为例。像素值如果大于阈值,则把像素值变成255,否则,变成0.这样以来,就把原图变成黑白两色,对比度明显。

threshold(image, t_image,120, 255,CV_THRESH_BINARY); 

自适应阈值分割

void cv::adaptiveThreshold(  
    cv::InputArray src, // 输入图像  
    cv::OutputArray dst, // 输出图像  
    double maxValue, // 向上最大值  
    int adaptiveMethod, // 自适应方法,平均或高斯  
    int thresholdType // 阈值化类型  
    int blockSize, // 块大小  
    double C // 常量  
); 

adaptiveThreshold()支持两种自适应方法,cv::ADAPTIVE_THRESH_MEAN_C(平均)和cv::ADAPTIVE_THRESH_GAUSSIAN_C(高斯)。

 adaptiveThreshold(image, src, 255, ADAPTIVE_THRESH_GAUSSIAN_C,THRESH_BINARY,5,20);

自适应阈值不用自己选择,该函数根据图像情况自己设定。
在这里插入图片描述
该图是经canny检测之后的阈值分割图。

阈值分割还有一种方法,直接说明:

Mat image = imread("D:\\program\\bu1.png",0);//读入模板图
	imshow("原图",image);
	waitKey(0);
	Mat dstImg(image.size(), CV_8UC3, Scalar::all(0));//纯黑图像

    int u1 = image.rows;//阈值化处理
	int u2 = image.cols;
	for (int i = 0; i < image.rows; i++)
	{
		for (int j = 0; j < image.cols; j++)
		{
			
	        sum = sum + image.at<uchar>(i, j);
		}
	}
	int u = u1*u2;
	int average = (int)sum/u*2;
	threshold(image, t_image, average, 255,CV_THRESH_BINARY); 
	Canny(src,t_image,50,50);  
	imshow("阈值分割图",t_image);
	waitKey(0);

该方法简单明了,阈值取值适中,不错。

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kmeans阈值分割是指在Kmeans聚类中,为了辅助数据的划分和分类,设定一个阈值来确定聚类结束的条件。 Kmeans是一种常用的聚类算法,通过迭代地将数据划分为k个类别,使得每个类别内的样本相似度最高,类别间的相似度最低。在Kmeans算法中,首先需要随机选择k个聚类中心,然后计算数据点与聚类中心之间的距离,并将数据点归类到距离最近的聚类中心。接下来,重新计算聚类中心的位置,并重复上述步骤直到满足终止条件为止。 在Kmeans聚类中,阈值分割可以用于决定聚类结束的条件。一种常用的阈值分割策略是设定一个误差的阈值,当聚类中心移动的距离小于该阈值时,即认为聚类已经趋于稳定,可以停止迭代。这样做的好处是可以有效地节省计算资源和提高算法的效率。 阈值的选择是一个重要的问题,如果阈值太大,会导致聚类结果不准确,聚类中心无法精确地收敛;如果阈值太小,会导致算法过分迭代,耗费大量的计算资源。因此,阈值的选择需要根据具体的应用场景和数据特点进行调整,经验性地确定一个合适的值。 总结来说,Kmeans阈值分割是一种在Kmeans聚类中确定聚类结束条件的策略,通过设定一个合适的误差阈值,当聚类中心的移动距离小于该阈值时,即认为聚类已经趋于稳定,可以停止迭代。这种策略可以提高算法的效率,并得到较为准确的聚类结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值