将垫子数据复制到另一个垫子

Copy Mat data to another Mat

本文关键字:另一个 数据 复制      更新时间:2023-10-16

我需要从一个垫子上复制我的图像数据。我的代码如下所示

Mat src; // Source image
Mat res(1024,768,CV_8UC3); //Same width and height as source
uchar *dest=src.data;
res.data=dest;

但是我得到了扭曲的目标图像。是我的编码问题吗?

提前感谢!

但是我得到了扭曲的目标图像。是我的编码问题吗?

如果宽度和高度相同,则问题出在通道数(每像素的字节数)上。尝试将CV_8UC3更改为 CV_8UC1

而且你的代码不会复制数据,它会复制指针。阅读有关memcpy的文档。

实际上你应该使用cv::Mat的方法clone

// returns deep copy of the matrix, i.e. the data is copied
    Mat clone() const;