Learning OpenCV cvAdaptiveThreshold 自适应阈值

来源:互联网 发布:怎样加入淘宝网 编辑:程序博客网 时间:2024/05/17 04:04

一、函数定义:

void cvAdaptiveThreshold(CvArr* src,//输入图像CvArr* dst,//输出图像double max_val,//最大值int adaptive_method=CV_ADAPTIVE_THRESH_MEAN_C,//自适应阈值方法int threshold_type=CV_THRESH_BINARY,//阈值类型int block_size=3,//邻域大小double param1=5//偏移量);

自适应阈值方法adaptive_method:

CV_ADAPTIVE_THRESH_MEAN_C 加权平均

CV_ADAPTIVE_THRESH_GAUSSIAN_C 高斯加权平均

二、例程:

//WIN7+VS2012+OPENCV2.4.7//void cvAdaptiveThreshold(//CvArr* src,//输入图像//CvArr* dst,//输出图像//double max_val,//最大值//int adaptive_method=CV_ADAPTIVE_THRESH_MEAN_C,//自适应阈值方法//int threshold_type=CV_THRESH_BINARY,//阈值类型//int block_size=3,//邻域大小//double param1=5//偏移量//);#include<cv.h>#include<highgui.h>#include<stdio.h>int main(int argc,char** argv){cvNamedWindow("threshold",1);cvNamedWindow("threshold_adp_mean",1);cvNamedWindow("threshold_adp_gaussian",1);//IplImage* src=cvLoadImage(argv[1],0);cvNamedWindow("source");cvShowImage("source",src);IplImage* dst=cvCreateImage(cvGetSize(src),src->depth,1);IplImage* dst_adp=cvCreateImage(cvGetSize(src),src->depth,1);//cvThreshold(src,dst,100,100,CV_THRESH_BINARY);cvShowImage("threshold",dst);cvAdaptiveThreshold(src,dst_adp,100,CV_ADAPTIVE_THRESH_MEAN_C);cvShowImage("threshold_adp_mean",dst_adp);cvAdaptiveThreshold(src,dst_adp,100,CV_ADAPTIVE_THRESH_GAUSSIAN_C);cvShowImage("threshold_adp_gaussian",dst_adp);// freecvWaitKey(0);cvDestroyAllWindows();cvReleaseImage(&src);cvReleaseImage(&dst);return 0;}

三、运行结果


原图像灰度化固定阈值高斯阈值平均阈值


0 0
原创粉丝点击