C++ 将PXCImage转换为OpenCV Mat(像素\u格式\u YUY2)
我正在开发Intel的RealSense SDK,我必须将其转换为OpenCV格式 我在论坛()中看到了这个解决方案,但是对于“PIXEL\u FORMAT\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,因为我只使用了API 英特尔RealSense SDK的文档应为 我不知道它是如何与SDK一起工作的,但是使用
librealsense
可以直接选择合适的颜色格式(对于OpenCVmat
它应该是bgr8
)
如果SDK中没有此选项,则可以查看librealsense
unpackyuy2
格式
或者,您可以尝试将数据直接复制到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图像!现在,我正试图做同样的事情,但与深度图像。我想我已经证明了所有可能的格式组合,但我无法复制它。你知道怎么做吗?