人脸检测必然用到USB摄像头,我使用wiki上的方法结合OpenCV来实现读摄像头采集的每一个画面,然后对每帧画面做边缘检测,前面用的canny算子,这里方法类似。首先需要保证你的NanoPi 2 Fire能连外网,然后输入用户名密码登陆,并进行更新和安装
apt-get update
apt-get install libcv-dev libopencv-dev
2、接上USB Camera,确定摄像头能正常使用并查看设备
ls /dev/video*
video0 就是你的USB摄像头设备
3、opencv的测试代码
cd /home/fa/Documents/opencv-demo
make
编译成功后,得到可执行文件demo
4.简单修改下代码,让摄像头原始采集到的图像和处理后的对比
#include "opencv2/opencv.hpp"
using namespace cv;
int main(int argc, char **argv)
{
VideoCapture cap(0); // open the default camera
if(!cap.isOpened()) // check if we succeeded
return -1;
Mat edges;
namedWindow("original",1);
namedWindow("edges",1);
for(;;)
{
Mat frame;
cap >> frame; // get a new frame from camera
imshow("original",frame);
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;
}
效果看下面
人脸检测必然用到USB摄像头,我使用wiki上的方法结合OpenCV来实现读摄像头采集的每一个画面,然后对每帧画面做边缘检测,前面用的canny算子,这里方法类似。首先需要保证你的NanoPi 2 Fire能连外网,然后输入用户名密码登陆,并进行更新和安装
apt-get update
apt-get install libcv-dev libopencv-dev
2、接上USB Camera,确定摄像头能正常使用并查看设备
ls /dev/video*
video0 就是你的USB摄像头设备
3、opencv的测试代码
cd /home/fa/Documents/opencv-demo
make
编译成功后,得到可执行文件demo
4.简单修改下代码,让摄像头原始采集到的图像和处理后的对比
#include "opencv2/opencv.hpp"
using namespace cv;
int main(int argc, char **argv)
{
VideoCapture cap(0); // open the default camera
if(!cap.isOpened()) // check if we succeeded
return -1;
Mat edges;
namedWindow("original",1);
namedWindow("edges",1);
for(;;)
{
Mat frame;
cap >> frame; // get a new frame from camera
imshow("original",frame);
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;
}
效果看下面