QT和opencv学习(一)配置

下载安装软件

  1. 下载vs 2017,根据自己所需安装。
  2. 下载Qt 5.11.1,选择适合自己电脑的版本下载安装,我选的是qt-opensource-windows-x86-msvc2017_64-5.11.1,一路继续即可。
  3. 下载vsaddin,由于是vs2017,故下载qt-vsaddin-msvc2017-2.2.1.vsix,双击安装即可。
  4. 下载opencv3.4,下载压缩包解压即可。

配置相关环境

    vs2017配置

       

      在Qt Options中点击Add加入Qt安装位置文件中Qt5.11.1文件夹即可。

   Qt配置opencv

      在新建项目中,找到.pro文件,在其中加入如下代码段,即可为当前项目配置好opencv。其的地址需根据opencv文件夹的地址来做出响应修改。

INCLUDEPATH += C:\project\C++\opencv\build\include
               C:\project\C++\opencv\build\include\opencv
               C:\project\C++\opencv\build\include\opencv2

INCLUDEPATH += C:\project\C++\opencv\build\include
CONFIG(debug, debug|release): {
LIBS += -LC:\project\C++\opencv\build\x64\vc14\lib \
-lopencv_world330
-lopencv_world330d
} else:CONFIG(release, debug|release): {
LIBS += -LC:\project\C++\opencv\build\x64\vc14\lib \
-lopencv_world330
-lopencv_world330d

示例

    下面做一个简单的人脸识别的小程序,并未使用Qt的界面。main.cpp中代码如下。

#include <QCoreApplication>
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/calib3d/calib3d.hpp>

using namespace std;
using namespace cv;

int main()
{
    Mat image, image_gray;      //定义两个Mat变量,用于存储每一帧的图像

    image = imread("C://001//lena.jpg");
    imshow("oringin", image);

    cvtColor(image, image_gray, CV_BGR2GRAY);//转为灰度图
    equalizeHist(image_gray, image_gray);//直方图均衡化,增加对比度方便处理

    CascadeClassifier eye_Classifier;  //载入分类器
    CascadeClassifier face_cascade;    //载入分类器

    //加载分类训练器,OpenCv官方文档提供的xml文档,可以直接调用
    //xml文档路径  opencv\sources\data\haarcascades
    if (!eye_Classifier.load("C:\\project\\C++\\opencv\\sources\\data\\haarcascades\\haarcascade_eye.xml"))  //需要将xml文档放在自己指定的路径下
    {
        cout << "Load haarcascade_eye.xml failed!" << endl;
        return 0;
    }

    if (!face_cascade.load("C:\\project\\C++\\opencv\\sources\\data\\haarcascades\\haarcascade_frontalface_alt.xml"))
    {
        cout << "Load haarcascade_frontalface_alt failed!" << endl;
        return 0;
    }

    //vector 是个类模板 需要提供明确的模板实参 vector<Rect>则是个确定的类 模板的实例化
    vector<Rect> eyeRect;
    vector<Rect> faceRect;

    //检测关于眼睛部位位置
    eye_Classifier.detectMultiScale(image_gray, eyeRect, 1.1, 2, 0 | CV_HAAR_SCALE_IMAGE, Size(30, 30));
    for (size_t eyeIdx = 0; eyeIdx < eyeRect.size(); eyeIdx++)
    {
        rectangle(image, eyeRect[eyeIdx], Scalar(0, 0, 255));   //用矩形画出检测到的位置
    }

    //检测关于脸部位置
    face_cascade.detectMultiScale(image_gray, faceRect, 1.1, 2, 0 | CV_HAAR_SCALE_IMAGE, Size(30, 30));
    for (size_t i = 0; i < faceRect.size(); i++)
    {
        rectangle(image, faceRect[i], Scalar(0, 0, 255));      //用矩形画出检测到的位置
    }

    imshow("test", image);         //显示当前帧
    waitKey(0);
    return 0;
}

结果如下:

到此便完成了配置环节。

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值