我正在开发一个依赖于手指检测的OpenCV项目。目前我有OpenCVFrameGrabber
抓取一个框架并将其放在IplImage
中。然后我将该图像绘制到我的GUI上。
这一切都有效,但即使我有彩色相机,所绘制的图像似乎是黑白的。图像中有明显的垂直线条,当有一些颜色时,它似乎会沿着这些线条分成几个部分。
有谁知道如何获取原始网络摄像头图像?
答案 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
有关。如果没有,您可能需要使用其他相机试验您的代码。