网上的教程说的都是mingw编辑器的qt版本,所以需要重新编译opencv

其实使用MSVC编辑器的话,可以直接调用。

只需要在pro文件里进行配置即可:


在pro写上:

#-------------------------------------------------#
# Project created by QtCreator 2015-06-02T18:30:52
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = charLoc
TEMPLATE = app


SOURCES += main.cpp\
        widget.cpp


HEADERS  += widget.h

FORMS    += widget.ui

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

CONFIG +=qt warn_on release

CONFIG(release,debug|release)
{
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_videostab2410.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_video2410.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_ts2410.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_superres2410.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_stitching2410.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_photo2410.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_ocl2410.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_objdetect2410.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_nonfree2410.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_ml2410.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_legacy2410.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_imgproc2410.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_highgui2410.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_gpu2410.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_flann2410.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_calib3d2410.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_features2d2410.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_core2410.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_contrib2410.lib

}
CONFIG(debug,debug|release){
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_videostab2410d.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_video2410d.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_ts2410d.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_superres2410d.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_stitching2410d.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_photo2410d.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_ocl2410d.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_objdetect2410d.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_nonfree2410d.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_ml2410d.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_legacy2410d.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_imgproc2410d.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_highgui2410d.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_gpu2410d.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_flann2410d.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_calib3d2410d.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_features2d2410d.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_core2410d.lib
    LIBS+=C:\opencv\build\x86\vc12\lib\opencv_contrib2410d.lib
}




在mian函数里面:
#include "widget.h"#include <QApplication>

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <QDebug>
using namespace cv;
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    Mat p_w_picpath= imread("D:/1.bmp",0);
    if(!p_w_picpath.empty())
    {
        qDebug()<<"iscc";
        imwrite("D:/1_2.bmp",p_w_picpath);
    }
    else
    {
        qDebug()<<"is error";
    }
    return a.exec();
}

在使用过程中,有时候配置都正确,但是就是编译不通过,

其实只需要把debug和release编译的临时文件全部删除,重新编译即可


下面直接把整个工程放出来