我有一个有 M 行和 3 列的 opencv 垫子,有没有办法重新排序垫子,以便切换第一列和最后一列(即第三列),同时中间列保持原位没有 复制数据?
最佳答案
OpenCV 数据是一个像素数组。有时您可以获得图像的列或矩形 View (例如使用 col() )。其中数据不是连续的,据我所知,它是在行与行之间进行计算的。然而,数据是共享的并且仍然是一个数组。
那么问题就变成了:我可以在不复制数据的情况下交换数组的两个部分吗?据我所知不是。
你可以使用OpenCV的优化函数来交换它们,但是数据会被复制。
此外,在 OpenCV 函数中,非连续数据比连续数据慢得多。更多可以read here .
关于c++ - 在不复制数据的情况下更改 opencv mat 中的列顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47263322/