OpenCV学习(一)

        最近两天正在学习OpenCV程序设计。因为在我考虑的双目立体视觉系统,设计采用VC++实现,为了应用大量的图像处理函数,使得程序能够快捷高速的实现需要的运算,并且能将我之前作的Matlab算法方便的转化为C++程序。

       其实OpenCV早有耳闻,但是一直没有系统学习,现在沉下心认真学习,希望能够以应用为目的快速掌握。

      下面列出我编的第一个可以运行的OpenCV程序(借鉴了中科院自动化所于仕琪的程序)。

#include "cv.h"
#include "highgui.h"
#include "stdio.h"

int main(int argc, char ** argv)
{
 IplImage * pImg = NULL;
 IplImage * pCannyImg = NULL;  

IplImage *pImgSobel = NULL;


 if ((pImg = cvLoadImage("C://Baboon.jpg",0))!= 0)
 {
  IplImage * pImg2 = cvCreateImage(cvGetSize(pImg),
       pImg->depth,
       pImg->nChannels);

  pImg2 = cvCloneImage(pImg);

  pCannyImg = cvCreateImage(cvGetSize(pImg),
       IPL_DEPTH_8U,1);



  pImgSobel = cvCreateImage(cvSize(512,512),IPL_DEPTH_8U,1);
  cvSobel( pImg, pImgSobel, 2, 2, 3);         

  cvCanny(pImg, pCannyImg, 50, 150, 3);

  cvSaveImage("C://test2.bmp",pImgUp);

  cvNamedWindow("Image",1);
  cvShowImage("Image",pImg);

  cvNamedWindow("Image1",1);
  cvShowImage("Image1",pCannyImg);

   cvNamedWindow("Image2",1);
  cvShowImage("Image2",pImgSobel); 

  cvWaitKey(0);

  cvDestroyWindow("Image");
  cvReleaseImage(&pImg);

  cvDestroyWindow("Image1");
  cvReleaseImage(&pCannyImg);

  cvDestroyWindow("Image2");
  cvReleaseImage(&pImgSobel);
  return 0;
 }
 return -1;
}

 

总结:以上代码实现了图像打开,图像存储,Canny边缘检测,Sobel算子检测,图像显示。

你可能感兴趣的:(OpenCV学习(一))