Java调起手机电脑摄像头

    技术2022-07-12  84

    一、直接上代码

    要导入的maven

    <!-- java调用摄像头 --> <!-- https://mvnrepository.com/artifact/org.bytedeco/javacv-platform --> <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv-platform</artifactId> <version>1.4.1</version> </dependency> <!-- https://mvnrepository.com/artifact/org.bytedeco.javacpp-presets/opencv-platform --> <dependency> <groupId>org.bytedeco.javacpp-presets</groupId> <artifactId>opencv-platform</artifactId> <version>3.4.1-1.4.1</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> @Test public void testCamera() throws InterruptedException, FrameGrabber.Exception { OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0); grabber.start(); //开始获取摄像头数据 CanvasFrame canvas = new CanvasFrame("摄像头");//新建一个窗口 canvas.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); canvas.setAlwaysOnTop(true); while (true) { if (!canvas.isDisplayable()) {//窗口是否关闭 grabber.stop();//停止抓取 System.exit(-1);//退出 } Frame frame = grabber.grab(); canvas.showImage(frame);//获取摄像头图像并放到窗口上显示, 这里的Frame frame=grabber.grab(); frame是一帧视频图像 Thread.sleep(50);//50毫秒刷新一次图像 } } @Test public void testCamera1() throws FrameGrabber.Exception, InterruptedException { VideoInputFrameGrabber grabber = VideoInputFrameGrabber.createDefault(0); grabber.start(); CanvasFrame canvasFrame = new CanvasFrame("摄像头"); canvasFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); canvasFrame.setAlwaysOnTop(true); while (true) { if (!canvasFrame.isDisplayable()) { grabber.stop(); System.exit(-1); } Frame frame = grabber.grab(); canvasFrame.showImage(frame); Thread.sleep(30); } }
    Processed: 0.012, SQL: 9