gpt4 book ai didi

c++ - OpenCV = 运算符

转载 作者:太空狗 更新时间:2023-10-29 19:58:45 24 4
gpt4 key购买 nike

我正在研究 OpenCV,我有一个困惑。我经历了这个 link而且我不太了解 OpenCV 中“=”运算符的概念。

假设我如下声明了 3 个矩阵:

Mat img1, img2, gray;

如果我从相机捕获的图像中获取矩阵 gray 并将其分配给 img1 如下所述,实际会发生什么? gray 中的数据是否被复制到 img1 还是它们之间共享数据?

img1 = gray;

最佳答案

OpenCV 的 Mat 类只是实际图像数据的 header,它包含指向该数据的指针。 = 运算符复制指针(以及 header 中的其他信息,如图像尺寸),以便两个 Mat 共享相同的数据。这意味着修改一个 Mat 中的数据也会更改另一个中的数据。这称为“浅”复制,因为仅复制顶层( header ),而不复制下层(数据)。

要制作底层数据的拷贝(称为“深层拷贝”),请使用 clone() 方法。您可以在链接到的页面上找到有关它的信息。

关于c++ - OpenCV = 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18154065/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com