我正在尝试将Mat
结构从 OpenCV 复制到另一个Mat
使用memcpy
(我在 Windows 中使用 OpenCV 2.4.3)
基本上代码是:
Mat NewFrame,OldFrame;
OldFrame=imread(image,CV_LOAD_IMAGE_COLOR);
memcpy(&NewFrame,&OldImage,sizeof(Mat));
问题是 NewFrame 和 OldFrame 不一样。这个 memcpy 之后的地址NewFrame.step.buf
已经改变了(???)
在 memcpy 之前,step
OldFrame 的字段地址是:
OldFrame.step.p=0x0032f338
OldFrame.step.buf=0x0032f338
在 memcpy 之后,step
来自 NewFrame 的字段地址为:
NewFrame.step.p=0x0032f338
NewFrame.step.buf=0x0032f2f8 // it should be 0x0032f338
我不明白为什么地址已更改以及如何解决此问题。