cvThreshold二值化函数

1.图像二值化:

就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果。所有灰度大于或等于阈值的像素被判定为属于特定物体,其灰度值为255表示,否则这些像素点被排除在物体区域以外,灰度值为0,表示背景或者例外的物体区域。

2.cvThreshold函数
函数cvThreshold对单通道数组应用固定阈值操作。该函数的典型应用是对灰度图像进行阈值操作得到二值图像(cvCmpS也可以达到此目的) 或者是去掉噪声,例如过滤很小或很大像素值的图像点。本函数支持的对图像取阈值的方法由threshold_type 确定。

形式:
void cvThreshold
( const CvArr* src,CvArr* dst,double threshold,double max_value, int threshold_type );

src: 原始数组 (单通道 , 8-bit of 32-bit 浮点数)。
dst: 输出数组,必须与 src 的类型一致,或者为 8-bit。
threshold: 阈值
max_value: 使用 CV_THRESH_BINARY 和 CV_THRESH_BINARY_INV 的最大值。
threshold_type: 

CV_THRESH_BINARY   dst(x,y) = max_value, if src(x,y)>threshold 0, otherwise.//

CV_THRESH_BINARY_INV   dst(x,y) = 0, if src(x,y)>threshold; dst(x,y) = max_value, otherwise.

CV_THRESH_TRUNC   dst(x,y) = threshold, if src(x,y)>threshold;   dst(x,y) = src(x,y), otherwise.

CV_THRESH_TOZERO   dst(x,y) = src(x,y), if (x,y)>threshold ;  dst(x,y) = 0, otherwise.

CV_THRESH_OTSU   

CV_THRESH_TOZERO_INV dst(x,y) = 0, if src(x,y)>threshold ;  dst(x,y) = src(x,y), otherwise

0: THRESH_BINARY 当前点值大于阈值时,取max_value,也就是第四个参数,否则设置为0

1: THRESH_BINARY_INV 当前点值大于阈值时,设置为0,否则设置为max_value

2: THRESH_TRUNC 当前点值大于阈值时,设置为阈值,否则不改变

3: THRESH_TOZERO 当前点值大于阈值时,不改变,否则设置为0

4: THRESH_TOZERO_INV 当前点值大于阈值时,设置为0,否则不改变

posted @ 2017-04-19 17:00  薛之谦的雪冰  阅读(1887)  评论(0编辑  收藏  举报