当前位置: 首页 > news >正文

Ubuntu20.04编译安装Opencv4.5.5

平台:Ubuntu20.04

CMAKE: cmake3.22.0 cmake-gui

文件路径:

~/opencv455/dev
~/opencv455/opencv-4.5.5
~/opencv455/opencv_contrib-4.5.5

注意,我的编译路径是dev(相当于大家常用的build文件夹),配置和编译文件都在这里。

配置Opencv

准备好后

$ cmake-gui

进入配置界面,配置如下图所示,主要是要选好"where is the source code"和"where to build the binary“这两个选框,然后点击Configure;

这时会弹出一个对话框,我一般选择Unix Makefiles,当然你可以选择ninja(要安装ninja)工具,

第一次配置好了会有很多红色,不要紧,后面任何时候再按一次Configure就好了,


BUILD_opencv_world

看到上面的配置文件后,一般我推荐设置好下面的几个参数

1、勾选上BUILD_opencv_world

这在有多个Opencv版本的库文件时尤其重要,这时可以通过链接libopencv_world.so.4.5.5这样的库区别其他版本的库函数。

2、在CMAKE_BUILD_TYPE后填上:Release

这一点只要检查一下就可以了,默认就是Release的。当然如果你想调试Opencv的源码,也可以编译Debug版本。

3、勾选上OPENCV_ENABLE_NONFREE

opencv提供了很多有意思的算法,这些算法商业上有版权,但源码是公开的,你可以编译进去。

很多算法通常我也用不到,但万一想测试一下呢,那就不用重新编译了。

4、在OPENCV_EXTRA_MODULES_PATH后填上opencv-contrib/modules的路径,比如我的是:/home/mc/opencv455/opencv_contrib-4.5.5/modules

这个附加功能模块的位置,提供相当多有意思的算法。如果你只需要opencv的核心模块的话,这个是可以不填写的。

 Configure完了之后就可以正式配置了,按“Generate"那个按钮可以看到输出下面这样的字样,

Configure Done

Generate Done

编译安装

几乎没什么要说的,直接在~/opencv455/dev中开启一个终端,

$ cd dev #注意我前面创建的编译路径是opencv455/dev

$ nproc #查询线程数量
12

$ make -j12  #开始编译

$ sudo make install #安装

$ sudo make uninstall #如果想卸载
$ cd  ..
$ sudo rm -r dev

这样,opencv455就编译安装完成了。

问题

(1)使用时,cv::namedWindow报错

terminate called after throwing an instance of 'cv::Exception'
  what():  OpenCV(4.5.5) /home/mc/opencv455/opencv-4.5.5/modules/highgui/src/window.cpp:1251: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvNamedWindow'

解决办法,

sudo apt install qt5-default (如果要用qt5)
sudo apt install libgtk2.0-dev

然后在cmake-gui中,选中

WITH_GTK (这个默认是选中的)

WITH_GTK_2_X

WITH_QT (没有选这个,貌似会有问题)

然后再配置编译项目就OK了。

参考资料

Ubuntu20.04编译安装Opencv4.5.5安装包报错:Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)_高精度计算机视觉的博客-CSDN博客

Ubuntu18:使用CMake-gui编译OpenCV3源码的详细过程_你卷我不卷的博客-CSDN博客

相关文章:

  • Linux如何查看内核版本并安装内核头文件linux-headers-generic
  • Linux中如何安装特定的gcc版本
  • Ubuntu 20.04 源码编译Paddle2.2.2
  • Ubuntu20.04源码编译PaddleOCR2.4
  • OpenCV导入时报错 ImportError: numpy.core.multiarray failed to import
  • OpenVINO2022.1+open_model_zoo例程的编译与使用
  • OpenCV cv::plugin::impl::DynamicLib::libraryLoad load ..opencv_core_parallel_tbb45 =>FAILED
  • OpenVINO之text_detection_demo
  • Paddle在windows10+vs2019上的源码编译(失败)
  • Tesseract-OCR试运行
  • Tesseract-OCR在Windows10(VS2019+vcpkg)平台上的编译与使用
  • Tesseract-OCR:在Windows10(VS2019+SW)平台上的编译与使用
  • Tesseract-OCR在Ubuntu20.04平台上使用
  • ROS2 Error: Could not find a package configuration file provided by “turtlebot3_msgs“
  • ROS2 + colcon build 常见的一些报错
  • es6要点
  • express.js的介绍及使用
  • JS笔记四:作用域、变量(函数)提升
  • Laravel 菜鸟晋级之路
  • Making An Indicator With Pure CSS
  • MobX
  • overflow: hidden IE7无效
  • SQLServer插入数据
  • VuePress 静态网站生成
  • vuex 笔记整理
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 前端之React实战:创建跨平台的项目架构
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 为什么要用IPython/Jupyter?
  • 写给高年级小学生看的《Bash 指南》
  • 转载:[译] 内容加速黑科技趣谈
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​业务双活的数据切换思路设计(下)
  • #include<初见C语言之指针(5)>
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (26)4.7 字符函数和字符串函数
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (vue)页面文件上传获取:action地址
  • (第27天)Oracle 数据泵转换分区表
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (规划)24届春招和25届暑假实习路线准备规划
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (十八)SpringBoot之发送QQ邮件
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (一)kafka实战——kafka源码编译启动
  • (原創) 物件導向與老子思想 (OO)
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .gitignore
  • .net 按比例显示图片的缩略图
  • .NET 反射的使用
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池