我从我的Kinect接收RGB数据并尝试将其放入OpenCV矩阵中。数据保存在" src":
中Mat matrixImageRGBA(w, h, CV_8UC4);
memcpy(matrixImageRGBA.data, src, sizeof(byte) * w * h * 4);
然而,当我使用" imshow"要查看图像,它会水平平铺四次。我使用以下命令:
imshow("Window", matrixImageRGBA);
waitKey(500);
有没有人知道问题可能在这里?这让我疯了。
谢谢!
答案 0 :(得分:3)
您向前w
和h
。根据文档,构造函数将height
作为第一个参数:
Mat (int rows, int cols, int type)
另外,我建议使用这个构造函数:
Mat(int rows, int cols, int type, void *data, size_t step=AUTO_STEP)
而不是复制到data
字段(因为在每行末尾没有使用填充,请使用AUTO_STEP
的默认step
。