opencv-----图像阈值化

*图像阈值化 可以根据灰度差异来分割图像不同的部分
*阈值化处理的图像一般为单通道图像(灰度图)
*阈值化参数的设置可以使用滑动条来debug
*阈值化处理容易受到光照处理,处理时应注意
固定阈值:threshold()
自适应阈值:adaptiveThreshold()
1)固定阈值————threshold()
给定阈值进行阈值操作得到二值图(0,1两类值),可以过滤掉灰度值过大或过小的点
double threshold(InputArray src,OutputArray dst,double thresh,double maxval,int type);
**src:单通道图像(灰度图或者二值图)
**dst:输出图像要求和src一样的尺寸和类型
**thresh :给定的阈值
**maxval:第五个参数设置为CV_THRESH_BINARY或CV_THRESH_BINARY_INV
阈值类型的最大值
第五个参数阈值类型取值如下
CV_THRESH_BINARY=0;
CV_THRESH_BINARY_INV=1;
CV_THRESH_TRUNC=2;
CV_THRESH_TOZERO=3;
CV_THRESH_TOZERO_INV=4;
这里写图片描述
2)自适应阈值—-adaptiveThreshold()
对矩阵采用自适应阈值操作,自适应阈值是根据像素的领域块的像素值分布来确定该像素位置上的二值化阈值
void adaptiveThreshold(InputArray src,OutputArray dst,double maxValue,int adaptiveMethod,int thresholdType,int blockSize,double C);
**src:单通道图像(灰度图或二值图)
**dst:输出图像要求和src一样的尺寸和类型
**maxValue使用CV_THRESH_BINARY 和CV_THRESH_BINARY_INV的最大值
**adaptiveMathod :指定自适应阈值算法,可取值为CV_ADAPTIVE_THRESH_MEAN_C或者CV_ADAPTIVE_THRESH_GAUSSIAN_C
**thresholdType:取阈值类型取值必须是CV_THRESH_BINARY,CV_THRESH_BINARY_INV二者之一
blockSize:用来计算阈值的邻域大小,3,5,7,9,
C:减去平均或加权平均后的常数值

thresholdType=CV_THRESH_BINARY

dst(x,y)={
maxValue ,if(src(x,y)>T(x,y)
0 otherwise
}
thresholdType=CV_THRESH_BINARY_INV:

dst(x,y)={
0 if(src(x,y)>T(x,y))
macValue otherwize
}
其中T(x,y)为分别计算每个单独像素的阈值 ,取值如下:
^^对方法CV_ADAPTIVE_THRESH_MEAN_C,先求出块中的均值,再减去C
^^对方法CV_ADAPTIVE_THRESH_GAUSSIAN_C,先求出块中的加权和(gaussian ),再减去C

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值