gpt4 book ai didi

c++ - 如果 M 是 cv::Mat,为什么 M.col(1) = M.col(7) 不起作用?

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

如果 M 是一个 cv::Mat ,下面的代码将起作用:

Mat M1 = M.col(1);

M.col(7).copyTo(M1);

但这不会:

M.col(1) = M.col(7)

为什么?

Update:
I found the explanation provided by official doc:
cv::Mat::row()

最佳答案

你应该使用:

M.col(7).copyTo(M.col(1));

copyTo 函数将数据从一个矩阵复制到另一个矩阵(即执行深复制)。另一方面,运算符“等于”仅将一个指针复制到另一个指针(即执行浅拷贝)。

而 M.col() 是一个常量点,无论如何都不能重新赋值。

关于c++ - 如果 M 是 cv::Mat,为什么 M.col(1) = M.col(7) 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25988457/

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