学习《OpenCV应用开发:入门、进阶与工程化实践》一书
做真正的OpenCV开发者,从入门到入职,一步到位!
安装QT5与QT Creator
如果只是简单的使用QT的GUI库,没有其它要求,其实特别容易,一行命令行可以搞定了,直接在终端运行:
sudo apt-get install qt5-default qtcreator –y
安装完成以后,去左下角的软件安装中心点开,鼠标往下滚就可以看到:
OpenCV支持配置
创建一个QT Widget Application类型的项目,然后右键选择该项目,选择导入第三方库的方式来导入OpenCV支持。默认情况下Jetpack系统是已经自带OpenCV库的,但是不支持CUDA,所以我自己编译了OpenCV4.8 + CUDA支持版本。
如何给Jetson Orin Nano的ubuntu port换镜像源
其中包含路径如下:
/usr/include/opencv4
so文件库路径如下
/usr/lib/aarch64-linux-gnu
分别选择好以后,按OK就可以完成OpenCV集成配置支持的第一步,然后再按我这样,手动修改
这样就配置好了OpenCV支持了。
QT+OpenCV代码测试
双击打开mainwindow.cpp文件,在里面添加代码如图所示:
检查一下是否有跟我一样的图像文件,改一下文件路径,源代码如下:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "opencv2/opencv.hpp"
#include "QLabel"
#include "QVBoxLayout"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
// add more codes from here~~~
cv::Mat bgr = cv::imread("/home/orinnano/Pictures/lena.jpg");
cv::Mat image;
cv::cvtColor(bgr, image, cv::COLOR_BGR2RGB);
QImage img = QImage(image.data, image.cols, image.rows, image.step, QImage::Format_RGB888);
img = img.scaled(QSize(800, 600), Qt::KeepAspectRatio);
QPixmap mp;
mp = mp.fromImage(img);
QLabel *label = new QLabel();
label->setAlignment(Qt::AlignCenter);
label->setPixmap(mp);
QVBoxLayout *vblayout = new QVBoxLayout();
vblayout->addWidget(label);
ui->centralwidget->setLayout(vblayout);
this->setWindowTitle("Jetson Orin Nano + Qt5 + OpenCV4.8 Demo");
}
MainWindow::~MainWindow()
{
delete ui;
}
运行结果:
后记:
我知道网上还有很多这类文章,但是它们有一个共同的问题,根本就没有集成QT界面跟OpenCV在一起,而且基于Qt Creator通过控制台运行一下拉到了。因而误导了不少人,也让很多人根本就不知道怎么集成这两个东西,所以我才写了这篇文章,帮助大家正本清源!
学习《OpenCV应用开发:入门、进阶与工程化实践》一书
做真正的OpenCV开发者,从入门到入职,一步到位!