樹莓派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 

  如圖:

  重啟設備!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM