在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。
- 该函数只支持单通道图像。