1、OpenCV下载

官网下载链接:https://opencv.org/releases/

可以直接选择Windows,下载对应的exe可执行文件
在这里插入图片描述
以opencv-4.12.0为例,这是由Visual Studio 2019编译得到的
在这里插入图片描述
选择一个路径解压如D:/opencv,将得到如下文件

在这里插入图片描述

其中,include文件夹路径:D:/opencv/opencv412/build/include

在这里插入图片描述
lib文件夹路径:D:/opencv/opencv412/build/x64/vc16/lib

在这里插入图片描述

2、Qt Creator配置

查看项目编译器是否包含“MSVC”

上面opencv lib文件夹路径包括vc16,即为MSVC2019
在这里插入图片描述

如果项目编译器为mingw,则需要安装MSVC编译器

路径为:工具 -> Qt Maintenance Tool -> Start Maintenance Tool
在这里插入图片描述
选择“添加或移除组件”,之后“下一步”
在这里插入图片描述
安装合适版本的编译器

在这里插入图片描述

3、Qt Creator项目配置

新建项目
在这里插入图片描述
设置项目名称
在这里插入图片描述
选择编译系统

在这里插入图片描述
填写类信息,默认即可
在这里插入图片描述
选择构建套件
在这里插入图片描述
完成项目创建
在这里插入图片描述
更改.pro中的配置

在这里插入图片描述

示例配置如下:

QT       += core gui
QMAKE_PROJECT_DEPTH = 0
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++17

# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

OPENCV_DIR = D:/opencv/opencv412/build
INCLUDEPATH += $$OPENCV_DIR/include
LIBS += -L$$OPENCV_DIR/x64/vc16/lib

CONFIG(debug, debug|release) {
    LIBS += -lopencv_world4120d
}

SOURCES += \
    main.cpp \
    mainwindow.cpp

HEADERS += \
    mainwindow.h

FORMS += \
    mainwindow.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

实现一个简单的opencv读取图片并显示功能
只需要更改mainwindow.cpp
mainwindow.cpp如下:

#include "mainwindow.h"
#include "ui_mainwindow.h"

// 引入OpenCV核心头文件(适配4.12.0版本)
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
// Qt调试头文件(可选,用于打印错误信息)
#include <QDebug>

// 使用OpenCV命名空间,简化代码
using namespace cv;

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // ========== 核心:OpenCV读取并显示图片 ==========
    // 1. 替换为你的图片实际路径(用/或\\,不要用\)
    QString imgPath = "C:/Users/Admin/Pictures/Pictures/1.jpg";

    // 2. OpenCV读取图片(IMREAD_COLOR = 1,读取彩色图)
    Mat image = imread(imgPath.toStdString(), IMREAD_COLOR);

    // 3. 检查图片是否读取成功(必加,避免空矩阵导致崩溃)
    if (image.empty()) {
        qDebug() << "图片读取失败!原因:";
        qDebug() << "1. 路径错误:" << imgPath;
        qDebug() << "2. 图片文件不存在/损坏";
        return;
    }

    // 4. OpenCV创建窗口并显示图片
    namedWindow("OpenCV显示图片", WINDOW_AUTOSIZE); // 创建窗口(自适应图片大小)
    imshow("OpenCV显示图片", image);                // 显示图片

    // 5. 关键:保持窗口显示(waitKey(0)阻塞直到按任意键关闭)
    // 若用waitKey(1)会瞬间闪退,这是新手最容易踩的坑
    waitKey(0);

    // 6. 关闭窗口(可选,按任意键后自动清理)
    destroyWindow("OpenCV显示图片");
}

MainWindow::~MainWindow()
{
    // 析构时销毁所有OpenCV窗口,释放资源
    destroyAllWindows();
    delete ui;
}

示例效果
在这里插入图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐