网上看了很多帖子,大多都是要使用Cmake等一系列编译和配置环境变量的操作。自己试了一下发现根本不用这么麻烦。
第一步,下载压缩包https://opencv.org/releases/
下载后双击运行,效果如下图:
随便选一个文件夹,一路继续到底就行。完成后大概是这个样子:
打开build\x64\vc15\lib文件夹,在lib中找到静态库文件:
再打开source文件夹,找到include文件夹
将include文件夹和两个静态库文件拷贝到源码路径中 :
打开build\x64\vc15\bin文件夹,在bin中找到动态库文件:
将其拷贝到程序运行目录下:
目前为止,所有文件已经准备完毕。打开QT项目文件,右键选择添加库,选择外部库然后确定。在弹出界面中,库文件选择刚刚我们拷贝到源码路径下的静态库(带d的为debug版),包含路径选择我们拷贝到源码路径下的include文件夹:
然后点击下一步,再点击完成。即可使用openCV的基本函数了。(记得qmake和引用相关头文件)。附一个很low的示例代码:
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QImage>
#include "opencv2/opencv.hpp"
using namespace cv;
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
Mat myImg;
Mat myDmg;
QImage myQImg;
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
// ui->label->setPixmap(QString(":/hg.jpg"));
//不能用资源文件,所以只有写路径了。
QString path=QString(QCoreApplication::applicationDirPath()+"/hg.jpg");
Mat immgdata=imread(path.toStdString());
cvtColor(immgdata,immgdata,COLOR_BGR2RGB);
//这行代码应该是有点多余。
myImg=immgdata;
//初始生成空的零像素阵列
myDmg=Mat::zeros(myImg.size(),myImg.type());
//第二个参数可以调整图片亮度
myImg.convertTo(myDmg,-1,1.3,1);
myQImg=QImage((const unsigned char*)myDmg.data,myDmg.cols,myDmg.rows,QImage::Format_RGB888);
ui->label->setPixmap(QPixmap::fromImage(myQImg.scaled(ui->label->size(),Qt::KeepAspectRatio)));
}
MainWindow::~MainWindow()
{
delete ui;
}
注意:ui界面有一个label。运行效果图如下:
(原图当然是比这个好看多了。。。。。)