OpenCV的FrameGrabber的输出图像不正确

时间:2012-11-14 17:16:54

标签: java image-processing opencv webcam javacv

我正在开发一个依赖于手指检测的OpenCV项目。目前我有OpenCVFrameGrabber抓取一个框架并将其放在IplImage中。然后我将该图像绘制到我的GUI上。

这一切都有效,但即使我有彩色相机,所绘制的图像似乎是黑白的。图像中有明显的垂直线条,当有一些颜色时,它似乎会沿着这些线条分成几个部分。

有谁知道如何获取原始网络摄像头图像?

1 个答案:

答案 0 :(得分:1)

我最近开始玩JavaCV,我总是试图避免这些新类,并坚持使用“原始”OpenCV方法。

我建议您尝试以下代码,并确保最简单的捕获过程有效:

public static void main(String[] args) 
{
    CvCapture capture = cvCreateCameraCapture(0);
    if (capture == null)
    {
        System.out.println("!!! Failed cvCreateCameraCapture");
        return;
    }

    cvNamedWindow("camera_demo");

    IplImage grabbed_image = null;

    while (true)
    {
        grabbed_image = cvQueryFrame(capture);
        if (grabbed_image == null)
        {
            System.out.println("!!! Failed cvQueryFrame");
            break;
        }                    

        cvShowImage("camera_demo", grabbed_image);
        int key = cvWaitKey(33);
        if (key == 27)
        {
            break;
        }
    }

    cvReleaseCapture(capture);
}

如果此方法有效,则您的问题可能与OpenCVFrameGrabber有关。如果没有,您可能需要使用其他相机试验您的代码。