gpt4 book ai didi

opencv - Mat::clone 和 Mat::copyTo 有什么区别?

转载 作者:太空宇宙 更新时间:2023-11-03 20:36:43 25 4
gpt4 key购买 nike

我知道“copyTo”可以处理掩码。但是当不需要口罩时,我可以同时使用两者吗?

http://docs.opencv.org/modules/core/doc/basic_structures.html#mat-clone

最佳答案

实际上,即使没有面具,它们也是一样的。

主要区别在于,当目标矩阵和源矩阵具有相同的类型和大小时,copyTo 不会更改目标矩阵的地址,而clone将始终为目标矩阵分配一个新地址。

当在 copyToclone 之前使用复制赋值运算符复制目标矩阵时,这一点很重要。例如,

使用copyTo:

Mat mat1 = Mat::ones(1, 5, CV_32F);
Mat mat2 = mat1;
Mat mat3 = Mat::zeros(1, 5, CV_32F);
mat3.copyTo(mat1);
cout << mat1 << endl;
cout << mat2 << endl;

输出:

[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]

使用克隆:

Mat mat1 = Mat::ones(1, 5, CV_32F);
Mat mat2 = mat1;
Mat mat3 = Mat::zeros(1, 5, CV_32F);
mat1 = mat3.clone();
cout << mat1 << endl;
cout << mat2 << endl;

输出:

[0, 0, 0, 0, 0]
[1, 1, 1, 1, 1]

关于opencv - Mat::clone 和 Mat::copyTo 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15672600/

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