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

本文对比了OpenCV中C与C++接口的区别,介绍了两种接口在图像加载等操作上的不同实现方式,并强调了C++接口在内存管理方面的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值