电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
文章
在linux系统安装opencv并在qt中使用
分 享
扫描二维码分享
在linux系统安装opencv并在qt中使用
OpenCV
Qt
linux
大斯
关注
发布时间: 2020-04-16
丨
阅读: 786
# 前言 上一篇讲到,通过dxflib库读取到了cad文件中的实体和信息,我们只是把它打印出来了,但是如果要把它绘制出来,办法也是有很多的。提供一思路:用opencv里面的pointf(一个点的模板类,定义了一个二维空间中的点)。然后将得到数据write到一张img中,最后显示照片。 ### 题外话 绘制dxf文件还有很多其他的办法。在QT绘制图像时一般采用QPainter,但是由于需要读入不同的dxf文件,坐标系统也随之改变,所以要用QGraphicsView框架来实现图元的绘制;也可以用canvas来绘制cad数据。附参考博客 [基于dxflib库读取DXF文件并在QT中绘制实体段图元](https://blog.csdn.net/SYHZJU/article/details/80110822?utm_source=blogxgwz8 "基于dxflib库读取DXF文件并在QT中绘制实体段图元") [canvas](https://segmentfault.com/a/1190000005857251 "canvas") ## - 安装opencv 首先下载opencv源码,网上很多这样的教程,最开始我也是这样做的,下载了opencv3.2.0的压缩包,然后移动到linux系统下,进行解压,到执行cmake这一步时就出现问题了,总是会出现这种错误 ![](https://cf05.ickimg.com/bbsimages/202004/e05d0ecb26c8639af4ace3f68a1d385e.png) 百度得到是需要安装gcc编译器,但是安装了以后也未能解决此问题,希望遇到此问题且解决了的小伙伴可以在评论区告诉我,感恩!!! 所以我直接到github上下载的opencv源码文件,大家先sudo apt-get update试一下,如果速度很快大家就可以下载源码了,如果出现很多错误,像下图一样的话就需要换源了 ![](https://cf05.ickimg.com/bbsimages/202004/75c0c6a0d52ee50fba4a73deeacc398b.png) 首先修改sources.list文件 **sudo vi /etc/apt/sources.list** 屏蔽掉之前的源,将下列文本添加到sources.list文件中 ```c deb http://mirrors.aliyun.com/ubuntu/ raring main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ raring-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ raring-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ raring-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ raring-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ raring main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ raring-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ raring-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ raring-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ raring-backports main restricted universe multiverse ``` 然后修改DNS配置 **sudo vi /etc/resolv.conf**,添加阿里云的DNS服务器 ```c nameserver 223.5.5.5 nameserver 223.6.6.6 ``` 然后再次执行**sudo apt-get update**,嘻嘻,现在是不是不报错了,我们就下载opencv的源码吧!!! https://github.com/opencv/opencv.git 很慢的话大家就先下载到pc机上,然后传输到linux系统下。总之这个过程是挺慢的,大家可以先安装opencv的编译工具和依赖包 ```c # 安装编译工具 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 ``` ![](https://cf05.ickimg.com/bbsimages/202004/eb887f60532ba545f571731699f75dae.png) 安装好了这些依赖包后,我们就进入opencv文件夹,新建一个build文件 ```c mkdir build ``` 进入build文件,cmake ```c cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. ``` ![](https://cf05.ickimg.com/bbsimages/202004/c02ec9812bfb6f1589104d5129d6f707.png) 执行make命令,安装(make的时间可能有点久,大家耐心等待一下) ```c make sudo make install ``` 安装好了opencv之后,我们就可以在qt中配置opencv了,在命令行继续输入 ```cpp sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf' sudo ldconfig ``` 然后我们就可以测试一下了,在qt中新建一个空的工程,打开.pro文件,在里面输入 ```cpp INCLUDEPATH += /usr/local/include/opencv4 \ /usr/local/include/opencv4/opencv2 #这里INCLUDEPATH的路径是本人的安装位置,自己在写入的时候一定要查看清楚 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 ``` 在main函数中输入 ```cpp #include
#include
using namespace cv; int main(int argc,char *argv[]) { QApplication a(argc,argv); namedWindow("hahah",0); Mat srcImage = imread("save.bmp"); imshow("hahah",srcImage); return a.ex
ec(); } ``` 运行结果如下: ![](https://cf05.ickimg.com/bbsimages/202004/34990d74c83607c999b7ece109af531c.png) # 后记 关于前面说的通过opencv绘制dxf图元信息,这里再补充一点,基于dxflib库大家肯定会得到一系列的二维点,可以存到vector里面,然后调用imwrite函数将数据写到一张图片里,但是在存数据之前大家需要先做一下坐标转换。我这一块还有许多问题,希望有大佬在评论区赐教,感恩!!! 今天就写到这吧,opencv涵盖范围很广,大家自己去探索吧!!!
原创作品,未经权利人授权禁止转载。详情见
转载须知
。
举报文章
点赞
(
1
)
大斯
关注
评论
(0)
登录后可评论,请
登录
或
注册
相关文章推荐
MK-米客方德推出工业级存储卡
Beetle ESP32 C3 蓝牙数据收发
Beetle ESP32 C3 wifi联网获取实时天气信息
开箱测评Beetle ESP32-C3 (RISC-V芯片)模块
正点原子数控电源DP100测评
DP100试用评测-----开箱+初体验
Beetle ESP32 C3环境搭建
【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏之二
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回
我要举报该内容理由
×
广告及垃圾信息
抄袭或未经授权
其它举报理由
请输入您举报的理由(50字以内)
取消
提交