• 树莓派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 

      如图:

      重启设备!!

  • 相关阅读:
    webpack debug
    linux下光标操作
    windows 下 基于express搭建 https协议的网站
    js里的null 与undefined
    scrollIntoView 前的元素滚动到浏览器窗口的可视区域内 不止垂直滚动,还有水平滚动
    js 四舍五入实现
    react 踩坑记
    String.slice
    sublime 常用插件
    springcloud 自己挖坑 @ConfigurationProperties不生效
  • 原文地址:https://www.cnblogs.com/songxingzhu/p/9687877.html
Copyright © 2020-2023  润新知