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; 
    }
  • 相关阅读:
    sitemap怎么制作才适合蜘蛛抓取?
    网站高并发优化性能调优总结
    圆柱模板行业B2B站点打造MIP推送+熊掌号推送+历史普通推送插件
    a href="javascript:void(0)" 是什么意思?加不加上有什么区别?
    <a href="#" onclick="history.back();"></a>这样写为什么是对的? -(转)
    form 表单 enctype 属性-(转自w3c)
    关于submit与document.form1.submit();这2个提交的区别
    zf-表单填写以及相关业务流程
    zf-关于把某个地址的svn项目移动到另一个上面的步骤
    zf-关于即将过期提示字符串的修改
  • 原文地址:https://www.cnblogs.com/zangdalei/p/5329434.html
Copyright © 2011-2022 走看看