从java摄像头捕获图像?
我如何从摄像头连续捕捉图像?
我想试验对象识别(也许使用Java媒体框架)。
我正在考虑创建两个线程
一个线程:
其他线程:
这个JavaCV实现工作正常。
码:
import org.bytedeco.javacv.*;
import static org.bytedeco.javacpp.opencv_core.IplImage;
import static org.bytedeco.javacpp.opencv_core.cvFlip;
import static org.bytedeco.javacpp.opencv_imgcodecs.cvSaveImage;
/**
* Created by gtiwari on 1/3/2017.
*/
public class Test implements Runnable {
final int INTERVAL = 100;///you may use interval
CanvasFrame canvas = new CanvasFrame("Web Cam");
public Test() {
canvas.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
}
public void run() {
FrameGrabber grabber = new VideoInputFrameGrabber(0); // 1 for next camera
OpenCVFrameConverter.ToIplImage converter = new OpenCVFrameConverter.ToIplImage();
IplImage img;
int i = 0;
try {
grabber.start();
while (true) {
Frame frame = grabber.grab();
img = converter.convert(frame);
//the grabbed frame will be flipped, re-flip to make it right
cvFlip(img, img, 1);// l-r = 90_degrees_steps_anti_clockwise
//save
cvSaveImage((i++) + "-aa.jpg", img);
canvas.showImage(converter.convert(img));
Thread.sleep(INTERVAL);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Test gs = new Test();
Thread th = new Thread(gs);
th.start();
}
}
JavaCV的配置也有提示
您可以修改代码并能够定期保存图像,并执行所需的其他处理。
前段时间我创建了一个通用的Java库,可用于通过PC摄像头拍照。 API非常简单,不会过度使用,可以独立工作,但也支持像OpenIMAJ,JMF,FMJ,LTI-CIVIL等其他网络摄像头驱动程序,以及一些IP摄像头。
该项目的链接是https://github.com/sarxos/webcam-capture
示例代码(拍照并保存在test.jpg中):
Webcam webcam = Webcam.getDefault();
webcam.open();
BufferedImage image = webcam.getImage();
ImageIO.write(image, "JPG", new File("test.jpg"));
它也可以在Maven Central Repository中获得,或者作为一个单独的ZIP包含所有必需的依赖关系和第三方JAR。
JMyron使用非常简单。 http://webcamxtra.sourceforge.net/
myron = new JMyron();
myron.start(imgw, imgh);
myron.update();
int[] img = myron.image();
链接地址: http://www.djcxy.com/p/81009.html