函数threshold()是对单通道的灰度图像进行阙值处理的(函数compare()也可以达到同样的效果)。
彩色图像可以使用cvtColor(strImage,grayImage,COLOR_RGB2GRAY)来变为灰度图像。
double threshold( InputArray src, OutputArray dst,double thresh, double maxval, int type );
第一个参数为输入的图像,Mat类型的即可。
第二个参数为输出图像,且和输入图像有同等大小和类型
第三个参数为设定阙值的具体值
第四个参数 maxval是当第五个参数类型为CV_THRESH_BINARY和CV_THRESH_BINARY_INV是的最大值
第五个参数是确定生成阙值图像的方法,有以下几种:
1、CV_THRESH_BINARY: dst(x,y)={ maxval(第四个参数值)if(src(x,y)>thresh) ,否则为0}
2、CV_THRESH_BINARY_INV:dst(x,y)={ 0 if(src(x,y)>thresh) ,否则为maxval}
3、CV_THRESH_TRUNC : dst(x,y)={ thresh if(src(x,y)>thresh) ,否则为src(x,y)}
4、CV_THRESH_TOZERO: dst(x,y)={ src(x,y) if(src(x,y)>thresh) ,否则为0}
5、CV_THRESH_TOZERO_INV: dst(x,y)={ 0 if(src(x,y)>thresh) ,否则为src(x,y) }
CV_THRESH_BINARY
效果:
CV_THRESH_BINARY_INV
效果:
CV_THRESH_TRUNC
效果:
CV_THRESH_TOZERO
效果:
CV_THRESH_TOZERO_INV
效果: