打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
关于opencv cv::Mat数据结构的说明

关于opencv cv::Mat数据结构的说明

(2015-05-21 09:50:08)



------------------------------------------
关于opencv cv::Mat数据结构的说明
------------------------------------------

   cv::Mat类在对象复制拷贝时采用的是浅复制模式,
如假如已有cv::Mat对象  m1;
    cv::Mat m2 = m1; //浅复制构造,实际存储空间是同一块
    cv::Mat m3;
    m3 = m1;       // 浅复制赋值,实际存储空间是同一块

   此时,如果你修改m1,那么m2,m3也会被修改。

   那么,如果是浅复制,析构函数调用时会不会导致动态申请内存多次
被删除呢?

   答案是不会的,因为cv::Mat对申请内存采用了计数的方式,每次复制和
赋值,计数加一,每次析构计数减一,这样确保内存既不会泄漏,也不会
被多次删除。

   进一步,cv::Mat又有没采用copy-on-write这种机制实现数据既能共享,
又能独立呢?答案是:没有!

   因此,如果想让每个对象都能有独立的数据空间,建议采用函数
         cv::Mat::copyto()
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
opencv中Mat使用,很好,顶!
Mat设计者Vadim详说OpenCV基础数据结构cv::Mat类
Mat对象与它各种用法
opencv2.4Mat矩阵操作
【从零学习OpenCV 4】Mat类支持的运算
openvc学习笔记
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服