首页 > 代码库 > OpenCV的阈值化函数threshold

OpenCV的阈值化函数threshold

在OpenCV中,threshold用来进行对图像(二维数组)的二值化阈值处理

 

通过查找OpenCV在线文档,发现存在很多函数:

 

其函数原型如下:

 

1. C版本的
函数原型:

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

src,dst: 不必多说,其要求类型一致性;

threshold:需要设置的阈值,当像素值大于某个数字时,设定一个值,否则为另外一个值。(二值化~)

max_value:最大值;

threshold_type:可以指定阈值化的类型;

具体如下所示: threshold_type=CV_THRESH_BINARY: dst(x,y) = max_value, if src(x,y)>threshold                 0, otherwise
threshold_type=CV_THRESH_BINARY_INV: dst(x,y) = 0, if src(x,y)>threshold                 max_value, otherwise
threshold_type=CV_THRESH_TRUNC: dst(x,y) = threshold, if src(x,y)>threshold                 src(x,y), otherwise
threshold_type=CV_THRESH_TOZERO: dst(x,y) = src(x,y), if (x,y)>threshold                 0, otherwise
threshold_type=CV_THRESH_TOZERO_INV: dst(x,y) = 0, if src(x,y)>threshold                 src(x,y), otherwise

2. OpenCL版本

函数原型:

C++: double ocl::threshold(const oclMat& src, oclMat& dst, double thresh, double maxVal, int type=THRESH_TRUNC)
在opencl中使用,其默认的类型为THRESH_TRUNC。
该函数只支持单通道图像。