我正在研究OpenCV,我有一个困惑.我经历了这个链接,我不太了解OpenCV中'='运算符的概念.
假设我声明3个矩阵如下:
Mat img1, img2, gray;
Run Code Online (Sandbox Code Playgroud)
如果我gray从相机拍摄的图像中获取矩阵并将其指定img1为如下所述,实际发生了什么?是否将数据gray复制到img1它们之间或者它们之间是否共享数据?
img1 = gray;
Run Code Online (Sandbox Code Playgroud)
OpenCV的Mat类只是实际图像数据的标题,它包含一个指针.的=操作者复制指针(以及在报头中的其他信息,如图像尺寸),使得两个Mat份额相同的数据.这意味着在一个中修改数据Mat也会在另一个中更改它.这被称为"浅"副本,因为只复制顶层(标题),而不是下层(数据).
要制作基础数据的副本(称为"深层副本"),请使用该clone()方法.您可以在链接到的页面上找到有关它的信息.