cvSaveImage()将图像保存到特定目录

时间:2016-03-02 14:11:55

标签: java javacv

我正在使用JavaCV。我的程序需要制作网络摄像头照片并将其保存到桌面上的文件夹中 这是文件夹的路径:

public static String webcamPath = System.getProperty("user.home") + "/Desktop/folder/webcam.png"

这就是我保存图片的方式:

FrameGrabber grabber = new VideoInputFrameGrabber(0);
try {
    grabber.start();
    Thread.sleep(1000);
    while (true) {
      IplImage  img = grabber.grab();
        if (img != null) {
            cvSaveImage(webcamPath, img);
    grabber.stop();
        }
    }
} catch (Exception e) {
      e.printStackTrace();
}

但是当网络摄像头开始工作时,它无法保存图像并且我得到了这个例外:

com.googlecode.javacv.FrameGrabber$Exception: videoInput is null. (Has start() been called?)

那么有没有办法将IplImage保存到桌面上的文件夹中?

感谢。

2 个答案:

答案 0 :(得分:0)

在您的代码中,这是流程:

  • 启动FrameGrabber
  • 启动循环
  • 停止抓取器
  • 再次尝试抓住<<<异常发生,因为抓取器未再次打开

我的猜测是将开放放在循环中:

FrameGrabber grabber = new VideoInputFrameGrabber(0);
try {
    while (true) {
      grabber.start();
      Thread.sleep(1000);
      IplImage  img = grabber.grab();

      if (img != null) {
        cvSaveImage(webcamPath, img);
        grabber.stop();
      }
    }
} catch (Exception e) {
      e.printStackTrace();
}

答案 1 :(得分:0)

通过添加以下内容将文件保存到特定目录:

cvSaveImage(<path>\\<imagename>, img);