打印
[开源硬件]

NanoPi 2fire接USB摄像头使用OpenCV

[复制链接]
2695|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chensy279|  楼主 | 2016-7-14 11:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。
NanoPi 2fire跑Debian系统时,接USB Camera,可直接使用官方的OpenCV。
1、以下介绍的是NanoPi 2用C++使用的OpenCV:
---首先需要保证你的NanoPi 2能连外网,假如你有串口,直接串口登陆超级终端(或者ssh登陆)。进入系统后,输入用户名(root),密码(fa)登陆;
---以下命令在超级终端执行:

#apt-get update (NanoPi 2fire默认的vi就是原生的vi,建议安装vim) #apt-get install vim #apt-get install libcv-dev libopencv-dev
2、NanoPi 2烧写Debian系统启动后,接上USB Camera,使用Debian系统自带的摄像头软件测试,确定摄像头能正常使用。
3、通过终端执行命令,查看你的摄像头设备:
#ls /dev/video+Tab 键,可看到video9 是你的USB摄像头设备(注:video0到8均被内核占用了)
4、opencv的测试代码如下(使用的是官方C++代码):
#cd /home/fa #vim test.cpp

#include "opencv2/opencv.hpp"  
using namespace cv;

int main(int, char**) { VideoCapture cap(0); // open the default camera if(!cap.isOpened()) // check if we succeeded return -1;

    Mat edges;
    namedWindow("edges",1); for(;;) { Mat frame;
        cap >> frame; // get a new frame from camera
        cvtColor(frame, edges, CV_BGR2GRAY);
        GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5);
        Canny(edges, edges, 0, 30, 3);
        imshow("edges", edges); if(waitKey(30) >= 0) break; } // the camera will be deinitialized automatically in VideoCapture destructor return 0; }
当前目录下编译代码:
#g++ test.cpp -o test -lopencv_core -lopencv_highgui -lopencv_imgproc
编译成功后,得到可执行文件test;
5、这里特别说明:目前NanoPi 2fire的内核注册了9个video设备,而opencv的官方源码定义了最多只能使用8个Camera,所以这里需要删掉一个暂时没用到的video,我们把video0设备删掉:
#rm /dev/video0 #mv /dev/video9 /dev/video0
6、以下步骤需要在NanoPi 2fire上接上键盘执行:
#./test
你便可以看到opencv已经用起来

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

57

帖子

1

粉丝