基于opencv 的图片模糊判断代码

#include"cv.h" 
#include"highgui.h" 
#include<iostream> 
using namespace std;  
double focus(IplImage* image);  
int main() { 
 IplImage* previous1;  
IplImage* previous2;  
IplImage* previous3;  
IplImage* previous4;  
 previous1=cvLoadImage("e://temporary/test01.bmp",1); 
 previous2=cvLoadImage("e://temporary/test02.bmp",1); 
 previous3=cvLoadImage("e://temporary/test03.bmp",1); 
 previous4=cvLoadImage("e://temporary/test04.bmp",1);  
 if(previous1!=0&&previous2!=0&&previous3!=0&&previous4!=0) 
 { 
  cvNamedWindow("previous1",1); 
  cvShowImage("previous1",previous1);   cvNamedWindow("previous2",1); 
  cvShowImage("previous2",previous2);   cvNamedWindow("previous3",1); 
  cvShowImage("previous3",previous3);   cvNamedWindow("previous4",1); 
  cvShowImage("previous4",previous4);  
  cout<<"The definition of the previous1 is: "<<focus(previous1)<<endl; 
  cout<<"The definition of the previous2 is: "<<focus(previous2)<<endl; 
  cout<<"The definition of the previous3 is: "<<focus(previous3)<<endl; 
  cout<<"The definition of the previous4 is: "<<focus(previous4)<<endl; 
  //关掉窗口,结束   cvWaitKey(0);  
  cvDestroyWindow("previous1");  
 cvReleaseImage(&previous1); 
  cvDestroyWindow("previous2"); 
  cvReleaseImage(&previous2);  
 cvDestroyWindow("previous3");   
cvReleaseImage(&previous3);  
 cvDestroyWindow("previous4");   
cvReleaseImage(&previous4);   return 0;  } 
 return -1; 
}  
double focus(IplImage* image) { 
 IplImage* picone=cvCreateImage(cvGetSize(image),8,3);  
 cvCvtColor(image,picone,CV_BGR2YCrCb);  
 CvScalar gety; 
 double z=0,zy1=0,zy2=0,total=0;  double gety1=0,gety2=0;  double final=0;  
 for(int ix=0;ix<(picone->height);ix++) 
  { 
   gety1=0;   
 gety2=0;   
 zy1=0;   
 zy2=0;  
   for(int jy=0;jy<(picone->width);jy++) 
   { 
    gety=cvGet2D(picone,ix,jy); 
    z=0.5*gety.val[0]-gety1+0.5*gety2+zy1-0.5*zy2;   
  total=total+z;     
gety2=gety1; 
    gety1=gety.val[0];     zy2=zy1;     zy1=z;  
  }  
} 
 cvReleaseImage(&picone); 
 final=abs(total/((image->height)*(image->width)));  
 return final; 
}
原文地址:https://www.cnblogs.com/zangdalei/p/5329434.html