我正在使用 openCV C++ API,并且正在尝试将相机缓冲区(YUV_NV12)转换为 RGB 格式。但是,我的图像尺寸发生了变化(宽度从 720 缩小到 480)并且颜色错误(有点紫色/绿色)。
unsigned char* myYUVBufferPointer = (something passed as argument)
int myYUVBufferHeight = 1280
int myYUVBufferWidth = 720
cv::Mat yuvMat(myYUVBufferHeight, myYUVBufferWidth, CV_8U, myYUVBufferPointer);
cv::Mat rgbMat;
cv::cvtColor(yuvMat, rgbMat, CV_YUV2RGB_NV12);
cv::imwrite("path/to/my/image.jpg",rgbMat);
有任何想法吗?*(我对改变的大小比颜色更感兴趣,因为我最终会将它转换为 CV_YUV2GRAY_NV12 并且可以工作,但大小不是)。*