1.首先记录下如何用Qt Creator做一个界面程序,新建一个项目
文章图片
如上选择后
文章图片
【Ubuntu|Ubuntu下Qt Creator配置opencv】 选择好路径,输入项目名称后,点击继续
文章图片
如下选择Desktop Qt 5.12.1 GCC 65bit选项,可以点击Details来做展开查看
文章图片
继续到如下界面
文章图片
可参照我之前的博客里做设计程序界面
pcharm配置pyqt5(Anaconda3 python环境)做界面开发_jiugeshao的专栏-CSDN博客
运行程序,点击界面上的show按钮,文本框内便出现了文本
文章图片
文章图片
2. 接下来记录配置Opencv的过程
https://github.com/opencv/opencv网站上下载opencv源码包,这里选择的是3.4版本
文章图片
选中后进行下载
文章图片
下载完毕后进行解压缩,在CmakeLists.txt所在文件夹下创建一个build文件夹
mkdir build
文章图片
如下命令安装必要的环境库(友情提示:请先提前安装好,特别是libgtk2.0-dev,不然后面会报找不到gtk2.0错误)
apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
命令行进入build文件夹下
cd build
输入如下命令通过cmakelist文件,自动生成makefile
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
文章图片
完毕后使用make命令,从makefile中读取相应指令,然后编译
make
文章图片
过程中若出现报错信息:
failed to create symbolic link '../../lib/libopencv_core.so.3.4': operation not supported on socket
文章图片
可以检查下,你的库是否放到了挂载共享目录下,如果是可以尝试换一个新的位置来做(博主碰到过,换一个非挂载文件夹就ok了,博主使用的是虚拟机环境)。
再执行如下命令,将 make 生成的文件安装到系统的对应目录中
make install
完毕后还需要进行如下配置:
输入如下命令:
gedit /etc/ld.so.conf.d/opencv.conf
打开后输入如下
文章图片
输入如下命令是刚才的配置路径生效
sudo ldconfig
再进行bash配置
sudo gedit ~/.bashrc
末尾添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
文章图片
保存后,再执行如下命令使得配置生效
source ~/.bashrc
输入如下命令可以查看opencv的版本
pkg-config opencv --modversion
文章图片
至此配置完毕。
3.在第一步中配置GUI程序中加入opencv库的引用
在.pro文件中添加头文件和lib库的引用路径
INCLUDEPATH += /usr/local/include \
/usr/local/include/opencv \
/usr/local/include/opencv2LIBS += /usr/local/lib/libopencv_highgui.so \
/usr/local/lib/libopencv_core.so\
/usr/local/lib/libopencv_imgproc.so \
/usr/local/lib/libopencv_imgcodecs.so
文章图片
ui界面设计如下:
文章图片
manwindow.h中的代码如下:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include
#include
using namespace cv;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}void MainWindow::slot1()
{
ui->textEdit->setText("hello world!");
Mat img = imread("/home/icecreamshao/108.bmp");
imshow("image", img);
waitKey(0);
Mat temp;
cvtColor(img, temp, CV_BGR2RGB);
QImage Qtemp = QImage((const unsigned char*)(temp.data), temp.cols, temp.rows, temp.step, QImage::Format_RGB888);
ui->label->setPixmap(QPixmap::fromImage(Qtemp));
ui->label->resize(Qtemp.size());
ui->label->show();
}MainWindow::~MainWindow()
{
delete ui;
}
运行程序,结果如下:
文章图片
补充:
若不用QT之类的IDE(集成开发)环境,直接用编译工具,编译运行也是可以的。拿源码下的samples例子示例:
文章图片
这里example.cpp中的代码修改为如下:
#include #include
#include
using namespace cv;
using namespace std;
int main(){
Mat img = imread("/usr/108.bmp");
imshow("image", img);
waitKey(0);
return 0;
}
例子中CMakeLists.txt、Makefile里内容不用更改。
在这个目录下新建一个build文件夹,cd到这个目录下,先后执行如下两个命令行
camke ..
make
文章图片
如上便生成得到了opencv_example可执行文件,运行一下 ,图片便show出来了
文章图片
也可以如下命令语句直接运行,不需要通过CMakeFiles来配置参数编译,后续会有博客专门介绍编译及交叉编译的方法及参数。
回到example.cpp文件所在的目录下,执行如下语句
g++ example.cpp -o example_D $(pkg-config --cflags --libs opencv)
文章图片
后面也会详细介绍pkg-config方式(去协助配置外部库lib, include的路径)
推荐阅读
- Qt|windows环境下在qt中配置opencv环境
- opencv|OpenCV-Python实现实时人脸检测(附源码)
- opencv|android应用案例开发大全第3版配套源码光盘_23行代码实现(Python实时人脸检测程序设计(附源码)...)
- 在Ubuntu中创建自定义域名而不是localhost
- halcon|halcon 畸变图像校正与长度测量
- opencv|基于OpenCv的人脸识别系统设计
- openCV|openCV人脸识别简单案例
- 智能车|智能车图像处理(一)阈值处理
- Opencv|【Opencv-python】画图操作/画线/画矩形/画圆/画多边形/添加文字