imshow() 在 C++ 年使用 OpenCV 3.2 产生了奇怪的结果

imshow() producing weird results with OpenCV 3.2 in C++

本文关键字:产生了 结果 OpenCV C++ imshow      更新时间:2023-10-16

我正在从我的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);

有没有人知道这里可能有什么问题?这让我发疯了。

谢谢!

你有wh倒退。根据文档,构造函数将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 for step (。