标签: c++ opencv
我需要从另一张Mat Mat中复制我的图像数据。我的代码如下所示
Mat src; // Source image Mat res(1024,768,CV_8UC3); //Same width and height as source uchar *dest=src.data; res.data=dest;
但是我的目标图像变形了。这是我的编码问题吗?
提前致谢!
答案 0 :(得分:6)
如果宽度和高度相同,那么问题就在于通道数(每个像素的字节数)。尝试将CV_8UC3更改为CV_8UC1。
CV_8UC3
CV_8UC1
而且您的代码也不会复制数据,它会复制指针。阅读有关memcpy。
memcpy
实际上你应该使用cv::Mat的方法clone:
cv::Mat
clone
// returns deep copy of the matrix, i.e. the data is copied Mat clone() const;