QT opencv常用代码备忘
·
最近在了解qt opencv的一些用法,把常用的代码记下来方便需要时复制使用
在默认.pro文件加入opencv包含路径和库文件
QT += core gui
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
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包含路径
INCLUDEPATH += G:\MinGW_Opencv\opencv4.10\include
#opencv库文件
LIBS += G:\MinGW_Opencv\opencv4.10\x64\mingw\lib\libopencv_world4100.dll.a
mainwindow.cpp 文件代码中加入 打开图片代码
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <QFileDialog>
using namespace cv;
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
//打开图片
void MainWindow::on_pushButton_clicked()
{
QString imgPath = QFileDialog::getOpenFileName(this,"打开图片","C:/","打开图片(*.png *.jpg *.bmp)");
Mat image = imread(imgPath.toStdString());
namedWindow("图片窗口",WINDOW_AUTOSIZE);
imshow("显示图片",image);
}
void MainWindow::on_pushButton_clicked() 这个怎么来的?

点击按钮直接读取图片(没有选择对话框),并显示在窗口中
Mat image = imread("d:\\2.jpg");
// 检查图片是否成功读取
if (image.empty())
{
std::cout << "Could not open or find the image" << std::endl;
return;
}
// 显示图片(这里只是简单示例,实际在 Qt 中可能需要结合 Qt 的界面显示)
imshow("Image", image);
waitKey(0);
用对话框选择图片,并在窗口显示图片
QString filename = QFileDialog::getOpenFileName(this, "打开图像文件", "C:/Users", "Image Files (*.bmp;*.png;*.jpg)");
if (filename.isEmpty()) {
QMessageBox::information(this, "提示", "文件打开失败1!");
return;
}
cv::Mat img_input;
img_input = cv::imread(filename.toLocal8Bit().toStdString());
if (img_input.empty()) {
QMessageBox::information(this, "提示", "文件打开失败2!");
return;
}
cv::Mat temp;
cv::cvtColor(img_input, temp, cv::COLOR_BGR2RGB);
namedWindow("Display window",WINDOW_AUTOSIZE);
imshow("Display window",img_input);
waitKey(0);
MainWindow w;
w.show();

更多推荐


所有评论(0)