OpenCV自适应二值化

来源:互联网 发布:c 敏感词过滤算法 编辑:程序博客网 时间:2024/06/09 13:45

关于直方图的理解:http://blog.csdn.net/sheldonwxp/article/details/7693541

 

//全局自适应方法

double threshold( InputArray src, OutputArray dst,                              double thresh, double maxval, int type );

其中,type可选择CV_THRESH_OTSU,即为大津滤波法

//局部自适应方法

void adaptiveThreshold(InputArray src,  OutputArraydst,//灰度图像的最大值,最小值为0(即黑色)double maxValue,//阈值算法CV_ADAPTIVE_THRESH_MEAN_C、CV_ADAPTIVE_THRESH_GAUSSIAN_Cint adaptiveMethod,//二值图是否反转CV_THRESH_BINARY、CV_THRESH_BINARY_INVint thresholdType,//块的大小,只能取奇数int blockSize,//可取负数double C ); //该函数可以理解为如下:其中T(x,y)为每个像素点单独的阈值if(adaptiveMethod ==CV_THRESH_BINARY){       dst(x,y)=src(x,y)>T(x,y)?max_value:0}else if(adaptiveMethod == CV_THRESH_BINARY_INV){dst(x,y) =src(x,y)>T(x,y)?0: max_value}

若为CV_ADAPTIVE_THRESH_MEAN_C,则求出邻域块中灰度的平均值再减去C得到T(x,y)

若为CV_ADAPTIVE_THRESH_GAUSSIAN_C,则求出邻域块中灰度的高斯加权值再减去C,得到T(x,y)

其他自适应滤波法:

最大类间方差法(大津滤波)http://blog.csdn.net/daxiamit/article/details/6619075#

       其在光照均匀的情况下有良好的识别效果

几种二值化方法C++实现

http://www.cnblogs.com/Imageshop/p/3307308.html

http://www.cnblogs.com/skyseraph/archive/2010/12/21/1913058.html

0 0
原创粉丝点击