学习opencv(2)---opencv中C风格和C++风格函数区别

来源:互联网 发布:python中的异常处理 编辑:程序博客网 时间:2024/05/22 06:09

         opencv提供了C接口和C++接口,例如加载图像函数C接口为CvLoadImage而C++接口为Imread他们在使用时有什么区别呢?

         OpenCV提供C接口和C++接口,功能是一样的。选用何种接口,完全取决于个人爱好。
         如果你的程序是C风格的,最好选用C接口,如果是C++风格的,最好选用C++接口。
         C接口的很多函数需要配对使用,比如:创建矩阵后需要释放矩阵,相对来说,代码量要大一些,一个不小心就会出现内存泄漏。尽量还是使用C++接口吧,个人意见。

         如下代码:

         C程序加载图像

           IplImage *src;
          src = cvLoadImage("xx.jpg"); 

          cvNamedWindow("lena",CV_WINDOW_AUTOSIZE);
          cvShowImage("lena",src);
          cvWaitKey(0);
          cvDestroyWindow("lena");
          cvReleaseImage(&src);

        C++程序如下:

         Mat img = imread("xx.jpg");
         namedWindow("image", CV_WINDOW_AUTOSIZE);
         imshow("image", img);
         waitKey();

         对比两种加载方式可以看出,C风格的函数一般都是配对使用,即有加载就要有释放,所以很容易出现的内存泄漏,而C++接口使用了类的方式。

         在使用C++代码时要注意  上述C++代码需要加入命名空间CV  即using namespace cv;否则需要写成imread就要写成cv::imread
原创粉丝点击