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已经用起来
|