zoukankan      html  css  js  c++  java
  • 基于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; 
    }
  • 相关阅读:
    python
    python中xrange和range的区别
    python
    shell用if
    shell调用shell
    An unhandled exception of type 'System.TypeInitializationException' occurred in System.ServiceModel.dll
    C# 获取存在DataTable1不存在DataTable2的数据的快速方法
    textbox自动提示
    全面理解面向对象的 JavaScript(转载)
    C#中文乱码转换
  • 原文地址:https://www.cnblogs.com/zangdalei/p/5329434.html
Copyright © 2011-2022 走看看