颜色格式错误或相机有缺陷?

时间:2017-08-23 20:46:37

标签: opencv rgb video-capture color-scheme yuv

我使用以下OpenCV代码从相机访问视频供稿(Jetson TX1终端中的lsusb命令将相机列为Pixart Imaging,Inc。)。

代码:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

int main()
{
        cv::VideoCapture cap(1);
        if(!cap.isOpened())
        {       
                std::cout << "Input error\n";
                return -1;
        }

        cv::namedWindow("Video Feed", cv::WINDOW_AUTOSIZE);

        for(;;)
        {
                cv::Mat frame;
                cap >> frame;
                std::cout << "Type: " << frame.type() << "\n";
                //cv::cvtColor(frame, frame, CV_YUV2RGB);
                //cv::resize(frame, frame, cv::Size2i(256, 144));
                cv::imshow("Video Feed", frame);        
                if (cv::waitKey(10) == 27)
                {
                        break;
                }
        }       
        cv::destroyAllWindows();
        return 0;
}

视频输入的screeenshots如下所示:

enter image description here

enter image description here

我正在尝试识别相机的颜色格式并将其转换为RGB。我尝试了不同的颜色格式,但我主要关注YUVRGB转换,如下所示(此行在上面的代码中已注释掉):cv::cvtColor(frame, frame, CV_YUV2RGB);

我还尝试了列出here的YUV的不同变体。但是,我还没有收到接近正常RGB图像的任何结果。

我也在终端上收到以下消息:

Corrupt JPEG data: 1 extraneous bytes before marker 0xd9

1)这只是一个有缺陷的相机吗?

2)是否有任何测试/方法来识别和纠正问题?

修改 我添加了一张新照片,以便了解靠近相机的人的衬衫的实际颜色是什么: enter image description here

0 个答案:

没有答案