使用Qt IDE开发OpenCV项目

之所以使用Qt作为开发IDE,是因为它简洁,以及方便等特性。之前是用vs开发的,但受够了他的繁琐。

我使用的Qt是vs版5.8,以及vs2013,参考了博文:https://blog.csdn.net/YaokunLu/article/details/52531961和https://www.cnblogs.com/AijunHe/p/6658741.html?utm_source=itdadao&utm_medium=referral的文章,

进行相关配置之后,在vs中能够开发,但不太喜欢vs这个IDE,想在Qt中开发。

在做好Qt的编译器之后,需要写Qt项目的pro文件,参考了好多都不太对,本着宁滥勿缺的原则,我把所有的库都写上了,然后还需要注意,需要执行构建里的qmake一下,下面是我的pro文件里添加的内容,可以根据你的opencv具体目录及版本做相应的更改

INCLUDEPATH += D:\program\opencv\opencv\build\include\opencv2 \
               D:\program\opencv\opencv\build\include\opencv  \
               D:\program\opencv\opencv\build\include




LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_ml2410d.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_calib3d2410d.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_contrib2410d.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_core2410d.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_features2d2410d.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_flann2410d.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_gpu2410d.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_highgui2410d.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_imgproc2410d.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_legacy2410d.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_objdetect2410d.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_ts2410d.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_video2410d.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_nonfree2410d.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_ocl2410d.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_photo2410d.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_stitching2410d.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_superres2410d.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_videostab2410d.lib


LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_ml2410.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_calib3d2410.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_contrib2410.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_core2410.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_features2d2410.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_flann2410.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_gpu2410.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_highgui2410.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_imgproc2410.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_legacy2410.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_objdetect2410.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_ts2410.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_video2410.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_nonfree2410.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_ocl2410.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_photo2410.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_stitching2410.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_superres2410.lib
LIBS+=D:\program\opencv\opencv\build\x64\vc12\lib\opencv_videostab2410.lib

写的有点多,但是没事,一次写好,之后就是复制粘贴了。再就是需要在头文件加入包含文件,

#include <opencv2/opencv.hpp>
#include <iostream>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;

基本就可以运行了,另外,如果你的程序中有中文,可能还有些问题,我的程序中原来有中文的注释,删掉之后可以正常运行。下面是一个调取摄像头的程序,亲测无错。

#include "widget.h"
#include "ui_widget.h"


Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    qDebug()<<"hello world!";
    VideoCapture cap(0);



        cout << "Original size:" << cap.get(CV_CAP_PROP_FRAME_WIDTH) << " " << cap.get(CV_CAP_PROP_FRAME_HEIGHT) << endl;

       cap.set(CV_CAP_PROP_FRAME_WIDTH, 640);
        cap.set(CV_CAP_PROP_FRAME_HEIGHT, 480);


        cap.set(CV_CAP_PROP_FPS, 16);

        cout << "Modified size:" << cap.get(CV_CAP_PROP_FRAME_WIDTH) << " " << cap.get(CV_CAP_PROP_FRAME_HEIGHT) << endl;

        cvNamedWindow("camera show", CV_WINDOW_AUTOSIZE);

        Mat frame;

        while (true)
        {
            cap >> frame;
            imshow("camera show", frame);

            if (waitKey(10) == 27) //press key “ESC” to quit from loop
                break;
        }
}

Widget::~Widget()
{
    delete ui;
}
程序运行截图,按esc推出摄像头采集。


后期解决中文的问题,再更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值