前言可以跳过
前言:今天有朋友问我要怎么安装opencv时,发现忘记了。他找到的安装方法比较繁琐(因为安装的版本和环境不一样)。只能把之前的安装教程翻出来,重新复习了一次之前的安装步骤。突然想起来以前看到有发出来记录,以前觉得没必要,现在教大家还是有比较好,不然又要找半天。正好这次可以记录一下(比较突然,没有截图)。
安装步骤:
一、安装开发包和编译工具,打开终端依次输入以下命令,一行为一个命令
sudo apt update (更新系统软件包列表)
sudo apt install build-essential libopencv-dev (安装opencv的C语言开发包和编译工具)
执行完上面两条命令,将安装OpenCV的C语言开发包及其依赖项,以及编译代码所需的基本工具。此时OpenCV库已经下载到了你的 /usr/local/include
二、在QT 5.9.1中使用OpenCV
1、在你的工程文件中,即 .pro 的文件包含头文件
INCLUDEPATH += /usr/local/include (头文件路径,标色的为你的路径,需要按照你自己的路径改)
LIBS += `pkg-config opencv --cflags --libs` (添加依赖,标色里的符号是反斜杠)
2、使用代码示例
2.1、打开摄像头
CvCapture *cam; (视频获取结构,用来作为视频获取函数的一个参数)
cam = cvCreateCameraCapture(0); (打开摄像头,从摄像头中获取视频)
2.2、获取一帧图像
IplImage *frame; (申请IplImage类型指针,就是申请内存空间来存放每一帧图像)
frame = cvQueryFrame(cam); (从摄像头中抓取并返回每一帧)
QImage image((const uchar*)frame->imageData,
frame- >width, frame->height,
QImage::Format_RGB888); (处理图像)
2.3、人脸检测
Mat img = imread("../1.jpg");
CascadeClassifier classifier("../haarcascade_frontalface_default.xml");
if (classifier.empty())
{
qDebug() << "加载特征器失败!";
return;
}
vector<cv::Rect> rects;
clock_t s = clock();
classifier.detectMultiScale(img, rects);
clock_t e = clock();
qDebug << "检测时间:" << 1000*(e-s)/CLOCKS_PER_SEC << "ms";
for(auto rect : rects)
{
qDebug << "x:" << rect.x << "y:" << rect.y << "width:" << rect.width << "hight:" << rect.height;
rectangle(img, "face", {30, 30}, 102, 1.0, {0, 0, 255});
}
imshow("img", img);