利用OpenCV实现局部动态阈值分割
利用OpenCV实现局部动态阈值分割,参考Halcondyn_threshold算子的思路实现。
#include"dialog.h" #include#include"cv.h" #include"highgui.h" #include intmain(intargc,char*argv[]) { IplImage*img=cvLoadImage("D:/cs/1227/f9.bmp",0); IplImage*out=cvCreateImage(cvGetSize(img),img->depth,1); cvSmooth(img,out,CV_BLUR,50); IplImage*res=cvCreateImage(cvGetSize(img),img->depth,1); qDebug()< nChannels; doublea=0; doubleb=0; for(inti=0;i height;i++){ for(intj=0;j width;j++){ CvScalarcolor=cvGet2D(img,i,j); CvScalarcolor1=cvGet2D(out,i,j); a=color.val[0]; b=color1.val[0]; //a=exp(a); CvScalarc=cvScalar(b-a+128); cvSet2D(res,i,j,c); } } cvThreshold(res,res,150,255,CV_THRESH_BINARY_INV); cvNamedWindow("Image",0); cvShowImage("Image",res); cvSaveImage("D:/cs/cs.bmp",out); cvWaitKey(0); cvReleaseImage(&img); cvDestroyWindow("Image"); return0; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。