OPENCV拖尾判定

来源:互联网 发布:十年前的网络歌曲 编辑:程序博客网 时间:2024/04/27 17:57

#include"cv.h"
#include"highgui.h"
#include<iostream>

using namespace std;  

double focus(IplImage* image); 
int sum = 0;
 
int main()
{  
 
 IplImage* previous1;
 IplImage* previous2;
 IplImage* previous3;
 IplImage* previous4;

    previous1=cvLoadImage(".\\temporary\\test01.bmp",1);
 previous2=cvLoadImage(".\\temporary\\test02.bmp",1);
 previous3=cvLoadImage(".\\temporary\\test03.bmp",1);
    previous4=cvLoadImage(".\\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;
  cout<<"the num is";
  cout<<sum;
  //关掉窗口,结束
  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),IPL_DEPTH_8U,3);
 cvCvtColor(image,picone,CV_BGR2YCrCb);
 CvScalar gety;
 int width = picone->width;
 int height = picone->height;
 double z=0,zy1=0,zy2=0,total=0;
 double gety1=0,gety2=0,gety3=0;
 double final=0.0f;
 for(int ix=0;ix<height;ix++)
 {
  gety1=0;
  gety2=0;
  gety3=0;
  zy1=0;
  zy2=0;
  for(int jy=0;jy<width;jy++)
  {
   gety=cvGet2D(picone,ix,jy);
   z=0.5*gety.val[0]-gety1+0.5*gety2+zy1-0.5*zy2;
   if(z>=0) total+=z;
   else total=total-z;
   gety2=gety1;
   gety1=gety.val[0];
   zy2=zy1;
   zy1=z;
   sum+=1;

  }
 }
 cvReleaseImage(&picone);
 final=(total/(height*width));

 return final;

}

0 0
原创粉丝点击