cv::Mat详解

  • 浅拷贝 :只复制矩阵头(大小、类型、引用计数等),不复制数据本身。赋值操作b = a或拷贝构造函数Mat b(a)都是浅拷贝。此时两个Mat对象指向同一块内存。

  • 深拷贝 :复制数据和矩阵头,完全独立的两份数据。使用a.clone()或a.copyTo(b)实现。

  • 追问 :ROI(感兴趣区域)是深拷贝还是浅拷贝?是浅拷贝,修改ROI会影响原图。

  • Mat类可以分为两个部分:矩阵头和指向像素数据的矩阵指针

      矩阵头:包括数字图像的矩阵尺寸、存储方法、存储地址和引用次数等,矩阵头的大小是一个常数,不会随着图像的大小而改变,但是保存图像像素数据的矩阵则会随着图像的大小而改变,通常数据量会很大,比矩阵头大几个数量级。这样,在图像复制和传递过程中,主要的开销是由存放图像像素的矩阵而引起的。因此,OpenCV使用了引用次数,当进行图像复制和传递时,不再复制整个Mat数据,而只是复制矩阵头和指向像素

    复制代码
    cv::Mat a ;                 //默认构造函数,创建矩阵头
     a = cv::imread("test.jpg"); //读入图像,矩阵指针指向该像素数据
    cv::Mat b = a ;             //复制

      上面的a,b有各自的矩阵头,但是其矩阵指针指向同一个矩阵,也就是其中任何一个改变了矩阵数据都会影响另外一个。那么,多个Mat共用一个矩阵数据,最后谁来释放矩阵数据呢?

      这就是引用计数的作用,当Mat对象每被复制一次时,就会将引用计数加1,而每销毁一个Mat对象(共用同一个矩阵数据)时引用计数会被减1,当引用计数为0时,矩阵数据会被清理。

    (2)常用构造函数------1

    复制代码
    cv::Mat::Mat(int rows,int cols,int type)

      重载的构造函数,这也是常用构造函数之一,在创建对象同时,提供矩阵的大小(rows,行数;cols ,列数),以及存储类型(type)

    该类型表示矩阵中每一个元素在计算机内存的存储类型,如CV_8UC3,具体含义为"3通道8位无符号数"。

(3)常用构造函数------2

复制代码
  cv::Mat::Mat(Size size,int type )

Size类等效于一个成对数据,size::Size(cols,rows),特别注意 cols和rows的位置
*

(4)常用构造函数------3

复制代码
  cv::Mat::Mat(int ndims,const int *  sizes,int type,const Scalar& s)

该构造函数与使用了Scalar参数,作用是能够通过Scalar数据类来初始化元素值
*

(5)常用构造函数------4

复制代码
  cv::Mat::Mat(const Mat & m)

引用m矩阵,注意,这里是引用值;

相关推荐
lank_M4 小时前
WebCodecs解码竖拍视频变横的?四个浏览器实测
图像处理·人工智能·计算机视觉·音视频
陈嘿萌4 小时前
学术速递|2026年8月 arXiv 图像融合论文汇总(08.01–08.31)29 篇最新成果
图像处理·人工智能·深度学习·计算机视觉·图像融合·学术研究与理论基础
闭包不眠5 小时前
竖拍视频宽高显示1920×1080?两种存法怎么分辨
图像处理·人工智能·计算机视觉·音视频
MoRanzhi12035 小时前
第 9 篇 · 数值计算与图像处理:NumPy、SciPy、Pillow
图像处理·python·数值计算·numpy·pillow·信号处理·scipy
Martina_03216 小时前
AI生成3D模型怎么判断能不能继续编辑?用6步检查Mesh、材质、UV与导出文件
图像处理·人工智能·3d·ai·自然语言处理·uv·游戏策划
陈嘿萌10 小时前
TPAMI 2026|红外、SAR、深度与地图能否用一套特征匹配?北理工HIMO给出无需预训练的通用路线
图像处理·人工智能·深度学习·计算机视觉·图像匹配·学术研究与理论基础
陈嘿萌11 小时前
TIP 2026 | SCAC:不用训练也能做视频时刻检索,让事件链与边界校准协同
图像处理·人工智能·深度学习·计算机视觉·学术研究与理论基础
LittroInno11 小时前
全景拼接中的重叠区域 视差与动态重影
图像处理·opencv·计算机视觉·图像配准·全景拼接
陈嘿萌1 天前
ICML 2026|浙大 1D-Fusion:用 Tokenizer 将图像“压”成一维 Token,重构融合表示
图像处理·人工智能·计算机视觉·图像融合·计算机科学与技术·学术研究与理论基础·顶级期刊与会议
benjiangliu1 天前
PixInsight入门教程-2-STF工具与线性图像
图像处理