C++ 在opencv中使用Color_YUV2BGR从YUV到BGR的转换错误
我想将一组YUV值转换为BGR。我的代码如下:C++ 在opencv中使用Color_YUV2BGR从YUV到BGR的转换错误,c++,opencv,computer-vision,yuv,bgr,C++,Opencv,Computer Vision,Yuv,Bgr,我想将一组YUV值转换为BGR。我的代码如下: yuv = [100, 50, 150] cv::Mat bgr_mat; cv::Mat yuv_mat(1,1,CV_8UC3,cv::Scalar(yuv[0],yuv[1],yuv[2])); cv::cvtColor(yuv_mat,bgr_mat,cv::COLOR_YUV2BGR); cv::Vec3b bgr = bgr_mat.at<cv::Vec3b>(0,0); cout << "b: " <&l
yuv = [100, 50, 150]
cv::Mat bgr_mat;
cv::Mat yuv_mat(1,1,CV_8UC3,cv::Scalar(yuv[0],yuv[1],yuv[2]));
cv::cvtColor(yuv_mat,bgr_mat,cv::COLOR_YUV2BGR);
cv::Vec3b bgr = bgr_mat.at<cv::Vec3b>(0,0);
cout << "b: " << (float)bgr.val[0] << " , g: " << (float)bgr.val[1] << " , r: " << (float)bgr.val[2] << endl;
yuv=[100,50,150]
cv::Mat bgr_Mat;
cv::Mat yuv_Mat(1,1,cv_8UC3,cv::Scalar(yuv[0],yuv[1],yuv[2]);
cv::cvtColor(yuv_垫、bgr_垫、cv::COLOR_YUV2BGR);
cv::Vec3b bgr=bgr_mat.at(0,0);
cout如果您使用的是Opencv 2.4,那么它是一个已知的
根据对类似事件的回应
有一个可能的解决办法:
yuv = [100, 50, 150]
cv::Mat bgr_mat;
cv::Mat yuv_mat(1,1,CV_8UC3,cv::Scalar(yuv[0],yuv[1],yuv[2]));
cv::cvtColor(yuv_mat,bgr_mat,cv::COLOR_YUV2BGR);
cv::cvtColor(bgr_mat,bgr_mat,cv::COLOR_BGR2RGB);
cv::Vec3b bgr = bgr_mat.at<cv::Vec3b>(0,0);
cout << "b: " << (float)bgr.val[0] << " , g: " << (float)bgr.val[1] << " , r: " << (float)bgr.val[2] << endl;
yuv=[100,50,150]
cv::Mat bgr_Mat;
cv::Mat yuv_Mat(1,1,cv_8UC3,cv::Scalar(yuv[0],yuv[1],yuv[2]);
cv::cvtColor(yuv_垫、bgr_垫、cv::COLOR_YUV2BGR);
cv::cvtColor(bgr_垫、bgr_垫、cv::COLOR_BGR2RGB);
cv::Vec3b bgr=bgr_mat.at(0,0);
您使用的是什么来源来获得您的期望值?@MarkRansom@vacky您使用的是OpenCv 2.4吗?请参阅Temak answer@Rama yes im使用OpenCv 2.4.8非常感谢您的回答。