opencv 对输入视频做直方图均衡化

  

作者:big tiger    qq:517725908

 以下程序首先读取摄像头的视频,然后转换到yuv空间,对Y进行直方图均衡化,在变回rgb空间,
int main( int argc, char** argv )
{
  IplImage* eqlimage = NULL;
  IplImage* yuvimage =NULL;
  ;
  IplImage* yImage =NULL;
  IplImage* uImage =NULL;
  IplImage* vImage =NULL;
   IplImage* pFrame =NULL;
  CvCapture* pCapture =NULL;
  int nFrmNum = 0;

  cvNamedWindow("src",1);
  cvNamedWindow("dst",2);
 

     pCapture = cvCreateCameraCapture(-1);
  while (1)
  {
   pFrame = cvQueryFrame(pCapture);
   nFrmNum++;
  
   if(1==nFrmNum)
   {
   eqlimage = cvCreateImage(cvGetSize(pFrame),pFrame->depth,3);
   yuvimage = cvCreateImage(cvGetSize(pFrame),pFrame->depth,3);
 
    yImage =cvCreateImage(cvGetSize(pFrame),pFrame->depth,1);
   uImage = cvCreateImage(cvGetSize(pFrame),pFrame->depth,1);
    vImage = cvCreateImage(cvGetSize(pFrame),pFrame->depth,1);
   }

   cvCvtColor(pFrame,yuvimage,CV_BGR2YCrCb);
   cvSplit(yuvimage, yImage,uImage,vImage,NULL);
  
   cvEqualizeHist(yImage,yImage);

    cvMerge(yImage,uImage,vImage,NULL,yuvimage);
   cvCvtColor(yuvimage,eqlimage,CV_YCrCb2BGR);
  
  
    cvShowImage("src",pFrame);
   cvShowImage("dst",eqlimage);
    if(cvWaitKey(37) == 27)
    {
     break;
    }
  
  
  }
   cvDestroyWindow("src");
   cvDestroyWindow("dst");
  
   cvReleaseImage(&yImage);
   cvReleaseImage(&uImage);
   cvReleaseImage(&vImage);
   cvReleaseImage(&yuvimage);
   cvReleaseImage(&eqlimage); 

   cvReleaseCapture(&pCapture);
   return 0;
 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值