zoukankan      html  css  js  c++  java
  • 树莓派3中没有/dev/video0的解决方法(使用OpenCV编程调用树莓派摄像头的方法)

    一、问题

      使用下列方法调用OpenCV编程调用树莓派摄像头时总是失败,提示调用Grabber的start()时失败。

    import org.bytedeco.javacpp.opencv_core;
    import org.bytedeco.javacv.*;
    
    public class Main {
        public static void main(String[] args) throws InterruptedException, FrameGrabber.Exception {
            FrameGrabber grabber = new FFmpegFrameGrabber("/dev/video0");
            //OpenCVFrameGrabber grabber = new OpenCVFrameGrabber(0);
            grabber.setImageWidth(640);
            grabber.setImageHeight(480);
            grabber.start();   //开始获取摄像头数据
            OpenCVFrameConverter.ToMat convertToMat = new OpenCVFrameConverter.ToMat();
            while (true) {
                Frame frame = grabber.grab();
                opencv_core.Mat mat = convertToMat.convert(frame);
                if (mat.empty()) {
                    System.out.println("mat is empty.");
                    break;
                } else {
                    System.out.println("Heith:" + frame.imageHeight + " x Width:" + frame.imageWidth);
                    Thread.sleep(30);
                }
            }
            grabber.stop();
            grabber.close();
            grabber.release();
        }
    }

      二、原因

      原因在于OpenCV在调用Linux中的摄像头时,没找到/dev/video0这个设备,因此需要添加一个简单的配置来搞定。

      三、解决方案

      找到下列文件:/etc/modules-load.d/modules.conf

    vim /etc/modules-load.d/modules.conf

      在末尾添加一行记录:

    bcm2835-v4l2 

      如图:

      重启设备!!

  • 相关阅读:
    购物车宣传页
    项目开发流程
    AJAX跨域
    jQuery中的AJAX
    AJAX封装
    AJAX里使用模板引擎
    AJAX的具体使用
    AJAX的基本使用
    js技巧汇总
    CSS特效汇集
  • 原文地址:https://www.cnblogs.com/songxingzhu/p/9687877.html
Copyright © 2011-2022 走看看