OpenCV学习(一)

    技术2022-05-11  14

            最近两天正在学习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算子检测,图像显示。


    最新回复(0)