固定阈值操作和自适应阈值操作
在图像操作中需要对图像中的像素做出取舍和决策,直接剔除一些低于或高于一定值得像素,阈值可以视为最简单的图像分割方法,例如从一幅图像中利用阈值分割出我们所需要的物体部分,这样的图像分割方法基于图像中物体和背景之间的灰度差异,而且此分割属于像素级分割 要从一幅图像中提取出我们所需要的部分,应该把图像中的每一个像素点的灰度值和阈值进行比较,并作出相应的判断,阈值的选取取决于具体的问题。opencv中阈值的操作:
1.固定阈值操作 Threshold()函数基本阈值操作
2.自适应阈值操作 adaptiveThreshold();
固定阈值操作 Threshold()进行阈值操作得到二值图像
C++ double threshold(InputArray src,OutputArray dst,double thresh,double maxval,int type)
1.第一个参数:输入数组,单通道,8位或者32位浮点类型的Mat
2.第二个参数:输出数组,和第一个参数有着同样的尺寸和大小
3.第三个参数:double类型的thresh,阈值的具体值。
4.第四个参数:double类型的maxval,当第五个参数阈值类型type取值时的最大值
5.第五个参数:int类型的type,阈值类型threshold()函数支持对图像取阈值的方法
THRESH_BINARY 0
THRESH_BINARY_INV 1
THRESH_TRUNC 2
THRESH_TOZERO 3
THRESH_TOZERO_INV 4
自适应阈值操作:adaptiveThreshold()函数
支持就地操作:
C++: void adaptiveThreshold(InputArray src,OutputArray dst,double maxValue,int adaptiveThreshold,int thresholdType,int blockSize,double C);
1.第一参数:输入图像,填Mat类型的即可,且需要为8位的单通道浮点型图像
2.第二个参数:输出图像,需要和原图像的尺寸保持一致
3.第三个参数:double类型maxValue给像素值赋值满足条件的非零值
4.第四个参数:用于指定要使用的自适应的阈值算法
5.第五个参数:阈值的类型
6.int类型的blocksize,用于计算阈值大小的一个像素的临与尺寸,取值为3,5,7.
7.double类型的C,减去平均或者加权平均值后的常数值,通常其为正数,但少数情况也可以为零或负数。