栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Ubuntu下Qt Creator配置opencv

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Ubuntu下Qt Creator配置opencv

1.首先记录下如何用Qt Creator做一个界面程序,新建一个项目

 如上选择后

 选择好路径,输入项目名称后,点击继续

 如下选择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

 

如下命令安装必要的环境库

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 /etc/bash.bashrc

末尾添加

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

保存后,再执行如下命令使得配置生效

source /etc/bash.bashrc

输入如下命令可以查看opencv的版本

pkg-config opencv --modversion

 

 至此配置完毕。

3.在第一步中配置GUI程序中加入opencv库的引用

在.pro文件中添加头文件和lib库的引用路径

NCLUDEPATH += /usr/local/include 
               /usr/local/include/opencv 
               /usr/local/include/opencv2

LIBS += /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;
}

 运行程序,结果如下:

 

 

 

 

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/286770.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号