基于Qt的OpenCV人脸识别(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huhuandk/article/details/84671474

        OpenCV对图像处理非常专业,具有很多模块。但是其GUI模块(即highgui),交互性非常差,就连按钮也得用滑动条来实现。而Qt这个强大的c++图形库很好的避免了这个缺点,因此笔者基于Qt平台,调用OpenCV库,来进行OpenCV的人脸识别开发。

       工欲善其事,必先利其器,要想完成开发,先得在Qt上搭建OpenCV的开发环境,如何编译OpenCV得到动态链接库这里不多说,有很多博客都做了详细说明,这里,笔者使用的是VS2015+OpenCV3.2编译的链接库。为什么使用vs2015平台呢,因为笔者的Qt平台用的是Qt 5.8.0 (MSVC 2015),可以直接调用编译好的链接库,其他的版本也是一样,对应上即可。

       建好了一个Qt工程后,笔者这里的工程名为face_reg,打开face_reg.pro这个文件,在在文件的末尾输入如下代码:

INCLUDEPATH += D:\Program\opencv3.2\newbuild\install\include
INCLUDEPATH += D:\Program\opencv3.2\newbuild\install\include\opencv
INCLUDEPATH += D:\Program\opencv3.2\newbuild\install\include\opencv2

LIBS += -LD:\Program\opencv3.2\newbuild\install\x64\vc14\lib -lopencv_aruco320d\
                                                            -lopencv_bgsegm320d\
                                                            -lopencv_bioinspired320d\
                                                            -lopencv_calib3d320d\
                                                            -lopencv_ccalib320d\
                                                            -lopencv_core320d\
                                                            -lopencv_datasets320d\
                                                            -lopencv_dnn320d\
                                                            -lopencv_dpm320d\
                                                            -lopencv_face320d\
                                                            -lopencv_features2d320d\
                                                            -lopencv_flann320d\
                                                            -lopencv_fuzzy320d\
                                                            -lopencv_highgui320d\
                                                            -lopencv_imgcodecs320d\
                                                            -lopencv_imgproc320d\
                                                            -lopencv_line_descriptor320d\
                                                            -lopencv_ml320d\
                                                            -lopencv_objdetect320d\
                                                            -lopencv_optflow320d\
                                                            -lopencv_phase_unwrapping320d\
                                                            -lopencv_photo320d\
                                                            -lopencv_plot320d\
                                                            -lopencv_reg320d\
                                                            -lopencv_rgbd320d\
                                                            -lopencv_saliency320d\
                                                            -lopencv_shape320d\
                                                            -lopencv_stereo320d\
                                                            -lopencv_stitching320d\
                                                            -lopencv_structured_light320d\
                                                            -lopencv_superres320d\
                                                            -lopencv_video320d\
                                                            -lopencv_videoio320d\
                                                            -lkernel32\
                                                            -luser32\
                                                            -lgdi32\
                                                            -lwinspool\
                                                            -lcomdlg32\
                                                            -ladvapi32\
                                                            -lshell32\
                                                            -lole32\
                                                            -loleaut32\
                                                            -luuid\
                                                            -lodbc32\
                                                            -lodbccp32

在widget.cpp里面输入如下代码:

#include "widget.h"
#include "ui_widget.h"
#include <opencv2/opencv.hpp>

using namespace cv;

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    Mat image = imread("D:\\test.jpg");
    cvNamedWindow("window", CV_WINDOW_NORMAL);
    imshow("window",image);
}

然后进行编译,运行,如果没有报错,并显示了图片,则配置正确,可以进行自己的开发了。

 文末尾附上笔者编译的动态链接库:https://download.csdn.net/download/huhuandk/10820983

猜你喜欢

转载自blog.csdn.net/huhuandk/article/details/84671474