环境配置:Ubuntu+QT+opencv

您所在的位置:网站首页 qt和opencv环境搭建 环境配置:Ubuntu+QT+opencv

环境配置:Ubuntu+QT+opencv

2024-07-15 12:55| 来源: 网络整理| 查看: 265

环境配置:Ubuntu+QT+opencv

唠叨两句:最近打算在windows10上的vs跑跑KCF算法,在git上下载的源码没能跑成功,查询了很多原因,最后总结出是因为windows上自带的头文件winnt.h与KCF源码有语句冲突,为了减少改代码的工作量,决定在ubuntu系统上配置opencv,方便后续开发。

已有的环境基础:Ubuntu18+QT5.1.2

QT的安装教程:

QT教程的安装很简单,这里就不废话了 参照下大佬的教程:https://blog.csdn.net/wuweifeng_2017/article/details/78322249

Opencv环境配置:

关于配置opencv我已经配置了一天半才能配置成功,我太难了,所以把配置过程中遇到的问题也分享。 网上的配置过程都大同小异,多多指点!

下载opencv软件包(zip格式) 两种方式: 方式一:官网下载:https://opencv.org/ 方式二:命令行下载:wget https://github.com/opencv/opencv/archive/3.4.1.zip 注意:3.4.1是opencv的版本号,可根据自己的喜好选择版本号。

下载之后可进行解压文件夹:命令行解压:unzip 压缩文件包 解压完之后可以看到: 在这里插入图片描述

进入opencv-3.4.1文件夹中:命令行:cd opencv-3.4.1 可以看到: 在这里插入图片描述

可以看到很多子文件和文件夹,其中可以看到build这个文件夹是我手动创建的,我们接下来将在build这个文件夹中完成opencv的安装。 创建build文件夹:mkdir build 并且进入:cd build

在该文件夹下安装依赖项:

sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

注意:由于依赖包较大,建议在网络较好的情况下安装,免得后面由于依赖包未安装完成没法配置成功,重新安装很麻烦,脑子会很乱。

一些安装完成之后,进入cmake,由于我的没有opencv的附加包opencv-contrib,所以cmake命令较为简单:

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

在cmake过程中可能会出现configuration incomplete,提示你安装失败,然后你重新cmake还是一样,而且这次错误的出现比往年来的更快,别慌,重新回到前面的依赖包安装。 保证依赖包全部下载完成之后!注意!在重新cmake之前,一定要把原来cmake产生的文件删除! 就是这个文件: 在这里插入图片描述 删除命令行:rm CMakeLists.txt 然后重新按照上述的cmake命令再来一次,基本就没啥问题了。

配置环境:

sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf' sudo ldconfig

最后:用QT测试: 进入QT:创建一个空项目,创建成功之后: 左上角会有个.pro文件,打开进行配置:

INCLUDEPATH += /usr/local/include \ /usr/local/include/opencv \ /usr/local/include/opencv2 \ LIBS += /usr/local/lib/libopencv_*.so

保存

最后,重启ubuntu系统,打开刚刚的项目,输入opencv的测试代码:

#include #include using namespace cv; using namespace std; int main() { Mat image; image = imread("/home/iot/opencvDemo/untitled/timg.jpeg" ,2);//not 16bits or 32bits if ( !image.data ) { printf("No image data \n"); return -1; } namedWindow("Display Image", CV_WINDOW_AUTOSIZE ); imshow("Display Image", image); waitKey(0); return 0; }

在这里插入图片描述 测试成功啦!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3