C++ 将PXCImage转换为OpenCV Mat(像素\u格式\u YUY2)

C++ 将PXCImage转换为OpenCV Mat(像素\u格式\u YUY2),c++,opencv,realsense,C++,Opencv,Realsense,我正在开发Intel的RealSense SDK,我必须将其转换为OpenCV格式 我在论坛()中看到了这个解决方案,但是对于“PIXEL\u FORMAT\u YUY2”类型,代码不起作用 有人知道如何改变它吗 提前感谢我不知道Intel RealSense SDK,因为我只使用了API 英特尔RealSense SDK的文档应为 我不知道它是如何与SDK一起工作的,但是使用librealsense可以直接选择合适的颜色格式(对于OpenCVmat它应该是bgr8) 如果SDK中没有此选项,则

我正在开发Intel的RealSense SDK,我必须将其转换为OpenCV格式

我在论坛()中看到了这个解决方案,但是对于“PIXEL\u FORMAT\u YUY2”类型,代码不起作用

有人知道如何改变它吗


提前感谢

我不知道Intel RealSense SDK,因为我只使用了API

英特尔RealSense SDK的文档应为

我不知道它是如何与SDK一起工作的,但是使用
librealsense
可以直接选择合适的颜色格式(对于OpenCV
mat
它应该是
bgr8

如果SDK中没有此选项,则可以查看
librealsense
unpack
yuy2
格式

或者,您可以尝试将数据直接复制到
mat
(您必须计算出
cvDataType
的正确值和
cvDataWidth
的正确值),然后如果您希望能够以RGB三元组的形式访问像素值,请使用适当的


希望有帮助。

非常感谢!也许这是个愚蠢的问题,但我不知道如何安装librealsense。。。我看到了Ubuntu的一些命令,但没有看到windows的任何一步一步的教程。你能帮我吗?提前谢谢
librealsense
是Windows以外平台的替代方案。对于Windows,我认为Intel建议使用SDK。您仍然可以使用CMake和visualstudio从源代码
librealsense
构建。您应该检查SDK中的默认颜色格式,它可能与
yuy2
不同,您应该能够轻松地转换为
mat bgr
。在英特尔SDK中,de格式是PIXEL\u format\u yuy2,但我不知道如何进行此转换。我这样做了:
colorIm->AcquireAccess(PXCImage::ACCESS\u READ,PXCImage::PIXEL\u FORMAT\u YUY2,&frmData)
image_openCV=Mat(尺寸(640480),CV_8UC3,frmData.planes[0])但它工作不好,图像排序不正确。您有一个示例和图像格式列表。使用
PIXEL\u FORMAT\u RGB24
,您应该能够获得
mat
图像。您需要将红色通道与蓝色通道交换,因为
mat
图像采用
BGR
格式(请参阅OpenCV中的
cvtColor
),非常感谢!它适用于RGB图像!现在,我正试图做同样的事情,但与深度图像。我想我已经证明了所有可能的格式组合,但我无法复制它。你知道怎么做吗?