OpenCV的FrameGrabber的输出图像不正确

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

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

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

我最近开始玩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有关。 如果没有,您可能想要用另一台相机试验您的代码。