程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 基於opencv 的圖片模糊判斷代碼,opencv模糊判斷代碼

基於opencv 的圖片模糊判斷代碼,opencv模糊判斷代碼

編輯:C++入門知識

基於opencv 的圖片模糊判斷代碼,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; 
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved