0

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

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

有谁知道获取原始网络摄像头图像的方法?

4

1 回答 1

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. 如果没有,您可能想用另一台相机试验您的代码。

于 2012-11-15T03:35:40.477 回答