使用Qt创建一个OpenCV工程

要使用Qt创建一个工程

需要以下几步:

第一步:下载安装并配置OpenCV版本;

我用的是OpenCV2.43版本,好像2.2以后的版本可以不用自己编译,使用安装解压出来的库就可以了.

第二步:下载安装并配置Qt

我用的是5.02版本,安装配置好就行了,新版本的一般也不需要配置什么的.

第三步:开始创建一个简单的控制台程序

(1)打开Qt Creator,选择创建一个控制台程序

点击选择:


下一步:


点击下一步


点击完成创建成功:

(2)创建成功后会有两个文件,一个是main.cpp文件 另一个是XXX.pro文件

点击打开.pro文件

在最后添加:

INCLUDEPATH += E:\opencv\build\include
CONFIG(release,debug|release){
    LIBS += E:\opencv\build\x86\vc10\lib\opencv_calib3d243.lib \
            E:\opencv\build\x86\vc10\lib\opencv_contrib243.lib \
            E:\opencv\build\x86\vc10\lib\opencv_core243.lib \
            E:\opencv\build\x86\vc10\lib\opencv_features2d243.lib \
            E:\opencv\build\x86\vc10\lib\opencv_flann243.lib \
            E:\opencv\build\x86\vc10\lib\opencv_gpu243.lib \
            E:\opencv\build\x86\vc10\lib\opencv_haartraining_engine.lib \
            E:\opencv\build\x86\vc10\lib\opencv_highgui243.lib \
            E:\opencv\build\x86\vc10\lib\opencv_imgproc243.lib \
            E:\opencv\build\x86\vc10\lib\opencv_legacy243.lib \
            E:\opencv\build\x86\vc10\lib\opencv_ml243.lib \
            E:\opencv\build\x86\vc10\lib\opencv_nonfree243.lib \
            E:\opencv\build\x86\vc10\lib\opencv_objdetect243.lib \
            E:\opencv\build\x86\vc10\lib\opencv_photo243.lib \
            E:\opencv\build\x86\vc10\lib\opencv_stitching243.lib \
            E:\opencv\build\x86\vc10\lib\opencv_video243.lib \
            E:\opencv\build\x86\vc10\lib\opencv_videostab243.lib \
}
CONFIG(debug,debug|release){
    LIBS += E:\opencv\build\x86\vc10\lib\opencv_calib3d243d.lib \
            E:\opencv\build\x86\vc10\lib\opencv_contrib243d.lib \
            E:\opencv\build\x86\vc10\lib\opencv_core243d.lib \
            E:\opencv\build\x86\vc10\lib\opencv_features2d243d.lib \
            E:\opencv\build\x86\vc10\lib\opencv_flann243d.lib \
            E:\opencv\build\x86\vc10\lib\opencv_gpu243d.lib \
            E:\opencv\build\x86\vc10\lib\opencv_haartraining_engined.lib \
            E:\opencv\build\x86\vc10\lib\opencv_highgui243d.lib \
            E:\opencv\build\x86\vc10\lib\opencv_imgproc243d.lib \
            E:\opencv\build\x86\vc10\lib\opencv_legacy243d.lib \
            E:\opencv\build\x86\vc10\lib\opencv_ml243d.lib \
            E:\opencv\build\x86\vc10\lib\opencv_nonfree243d.lib \
            E:\opencv\build\x86\vc10\lib\opencv_objdetect243d.lib \
            E:\opencv\build\x86\vc10\lib\opencv_photo243d.lib \
            E:\opencv\build\x86\vc10\lib\opencv_stitching243d.lib \
            E:\opencv\build\x86\vc10\lib\opencv_ts243d.lib \
            E:\opencv\build\x86\vc10\lib\opencv_video243d.lib \
            E:\opencv\build\x86\vc10\lib\opencv_videostab243d.lib \
}
比较懒 把所有库都加上了,以后使用方便;

此处参考了 http://blog.csdn.net/sky_freebird/article/details/6684857 的博客

注意可能includepath包含的路径不一样,需要依据自己机器的情况修改

由于可能使用的openCV文件的版本不一样,可能包含的库不一样,需要自己打开路径查看,库名称后面有个d的是DeBug 版本的;

设置包含路径的时候要注意不要设置错了include路径

我的openCV中的路径中有两个include

E:\opencv\include 

E:\opencv\build\include

设置上面那个是没有用的,需要设置下面的这个路径


(3)修改main.cpp文件就可以了

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

int main()
{
    //read an image
    cv::Mat image = cv::imread("C:\\Users\\chenchao\\Desktop\\airplane.jpg");
    //create image window
    cv::namedWindow("My Image");
    //show the image
    cv::imshow("My Image",image);
    //wait
    cv::waitKey();
    return 1;
}

(4)运行显示成功



程序可在以下联接中下载

http://download.csdn.net/detail/cc7829290/5466711

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
好的,这是一个很有趣的问题。使用 OpenCVQt 编写人脸识别程序需要以下步骤: 1. 使用 OpenCV 中的人脸检测算法检测图像中的人脸。 2. 使用 OpenCV 中的人脸识别算法对检测到的人脸进行识别。 3. 将识别结果显示在 Qt 界面中。 以下是一个简单的示例代码: ```cpp #include <opencv2/opencv.hpp> #include <QApplication> #include <QLabel> #include <QPixmap> using namespace cv; int main(int argc, char *argv[]) { QApplication a(argc, argv); // 加载人脸检测器 CascadeClassifier face_cascade; face_cascade.load("haarcascade_frontalface_alt.xml"); // 加载人脸识别器 Ptr<FaceRecognizer> recognizer = createLBPHFaceRecognizer(); recognizer->load("recognizer.xml"); // 打开摄像头 VideoCapture cap(0); if (!cap.isOpened()) { return -1; } // 创建 Qt 窗口 QLabel label; label.show(); while (true) { Mat frame; cap >> frame; // 检测人脸 std::vector<Rect> faces; face_cascade.detectMultiScale(frame, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, Size(30, 30)); // 对每个检测到的人脸进行识别 for (size_t i = 0; i < faces.size(); i++) { Mat face = frame(faces[i]); cvtColor(face, face, CV_BGR2GRAY); equalizeHist(face, face); int label; double confidence; recognizer->predict(face, label, confidence); // 在 Qt 窗口中显示识别结果 QString text = QString("Person %1, confidence %2").arg(label).arg(confidence); label.setText(text); QPixmap pixmap = QPixmap::fromImage(QImage(frame.data, frame.cols, frame.rows, frame.step, QImage::Format_RGB888).rgbSwapped()); label.setPixmap(pixmap); } // 显示 Qt 窗口 a.processEvents(); } return 0; } ``` 希望这个示例能够帮助你开始编写人脸识别程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值