天天看点

树莓派opencv的编译使用和驱动官方摄像头一

目录

    • 编译方法
    • 摄像头驱动

编译方法

通过代码载入一张图片,用opencv将突破输出到屏幕中。

新建两个文件分别为test.cpp和makefile

touch test.cpp
touch makefile
           

makefile文件

INCLUDE = $(shell pkg-config --cflags opencv)
LIBS = $(shell pkg-config --libs opencv)
SOURCES = test.cpp
# 目标文件
OBJECTS = $(SOURCES:.cpp=.o)
# 可执行文件
TARGET = test
$(TARGET):$(OBJECTS)
    g++ -o $(TARGET) $(OBJECTS) -I $(INCLUDE) $(LIBS)
$(OBJECTS):$(SOURCES)
    g++ -c $(SOURCES)
clean:
    rm $(OBJECTS) $(TARGET)
# 编译规则 $@代表目标文件 $< 代表第一个依赖文件
%.o:%.cpp
    g++ -I $(INCLUDE) -o $@ -c $<

           

makefile中通过pkg-config --cflags opencv 获得opencv相关头文件路径,通过pkg-config --libs opencv获得opencv扩展库。

摄像头驱动

test.cpp文件

#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main (int argc, char **argv)
{
    Mat image_src, image_gray, image_edge;
    image_src = imread(argv[1], CV_LOAD_IMAGE_COLOR );
    if (argc != 2 || !image_src.data) {
        cout << "No image data\n";
        return -1;
    }
    cvtColor(image_src, image_gray, CV_RGB2GRAY); //将原图转为灰度图
    imshow("image", image_src);
    imshow("edge", image_gray);
    waitKey(500000);
    return 0;
}

           

然后执行make ,会生成一些文件test 、test.o

#make
           

然后执行命令,就能显示出来图片

#  ./test  1.jpg
           

(二) 解决无法打开官方摄像头硬件问题

sudo nano /etc/modules
然后Ctrl+x可以显示是否保存文档,再按y是保存更改,按n为不保存更改,继续再按enter键可退回到命令窗口
// 进入编辑界面后,在末尾添加输入
snd-bcm2835
bcm2835-v4l2
           

重启树莓派 ,查看设备管理器是否存在video0

cd /dev
ls
           

或者通过下面方法

下载已经修改软件源

curl http://www.linux-projects.org/listing/uv4l_repo/lrkey.asc | sudo apt-key add -
           
sudo nano /etc/apt/sources.list
           
以下内容添加到/etc/apt/sources.list文件中:
           
deb http://www.linux-projects.org/listing/uv4l_repo/raspbian/ wheezy main
然后
sudo apt-get update
sudo apt-get upgrade
           

安装UV4L

sudo apt-get install uv4l uv4l-raspicam

开始驱动服务

sudo service uv4l_raspicam restart
           

在服务开启的时候,uv4l会去解析配置文件/etc/uv4l/uv4l-raspicam.conf以获取 驱动选项的默认值。

sudo apt-get install uv4l-server
sudo apt-get install uv4l−uvc 
sudo apt-get install uv4l-xscreen
sudo apt-get install uv4l-mjpegstream
#uv4l参数设置即可
uv4l --driver raspicam --auto-video_nr --width 640 --height 480 --encoding mjpeg(或者h264、jpeg)
           

继续阅读