Linux安装opencv(附带出错,解决方法参考)

2023-11-08

前言:
lib库:运行库
dev库:开发
gdb库:调试

安装

1.1

OpenCV是一个开源的软件,在一个source文件下,包含了所有的源代码文件。

使用哪种操作系统?windows还是linux?使用哪种编译器?

注意,执行安装包很可能不仅仅安装源文件,还可能安装构建应用程序所需的已编译的二进制文件。检查build目录,它应该包含x64和x86,子目录下有vc10,vc11,vc12等,对应了不同的visual studio的二进制文件。

为了完成安装过程并构建OpenCV二进制文件,你需要实用CMake工具,该工具可从http:cmake.org下载。CMake是另一个开源的软件工具,用于控制使用了跨平台配置文件的软件系统的编译过程。它可以生成在特定环境下编译软件库所需要的makefile和workspace文件。
因此你需要事先下载并安装CMake,之后可以使用命令工具来运行CMake。

在Linux环境下,你可以用make实用命令运行前面生成的makefile文件。为了完成所有的目录的安装,你需要运行Build INSTALL 或者sudo make INSTALL

先安装依赖的包:

参考一篇外文的教程:如下
Compulsory Dependencies
We need CMake to configure the installation, GCC for compilation, Python-devel and Numpy for creating Pythonextensions etc.

yum install cmake
yum install python-devel numpy
yum install gcc gcc-c++

Next we need GTK support for GUI features, Camera support (libdc1394, libv4l), Media Support (ffmpeg, gstreamer)
etc.

yum install gtk2-devel
yum install libdc1394-devel
yum install libv4l-devel
yum install ffmpeg-devel
yum install gstreamer-plugins-base-devel

Optional Dependencies
Above dependencies are sufficient to install OpenCV in your fedora machine. But depending upon your requirements,
you may need some extra dependencies. A list of such optional dependencies are given below. You can either leave itor install it, your call ?
OpenCV comes with supporting files for image formats like PNG, JPEG, JPEG2000, TIFF, WebP etc. But it may be a little old. If you want to get latest libraries, you can install development files for these formats.

yum install libpng-devel
yum install libjpeg-turbo-devel
yum install jasper-devel
yum install openexr-devel
yum install libtiff-devel
yum install libwebp-devel

Several OpenCV functions are parallelized with Intel’s Threading Building Blocks (TBB). But if you want to enable it, you need to install TBB first. ( Also while configuring installation with CMake, don’t forget to pass -DWITH_TBB=ON. More details below.)

yum install tbb-devel

OpenCV uses another library Eigen for optimized mathematical operations. So if you have Eigen installed in your system, you can exploit it. ( Also while configuring installation with CMake, don’t forget to pass -D WITH_EIGEN=ON.More details below.)

yum install eigen3-devel

If you want to build documentation ( Yes, you can create offline version of OpenCV’s complete official documentation in your system in HTML with full search facility so that you need not access internet always if any question, and it is quite FAST!!! ), you need to install Sphinx (a documentation generation tool) and pdflatex (if you want to create
a PDF version of it). ( Also while configuring installation with CMake, don’t forget to pass -D BUILD_DOCS=ON.More details below.)

yum install python-sphinx
yum install texlive

下载opencv压缩包

下载.zip或者.git的opencv文件

cmake编译,安装

  1. 进入你下在解压好的opencv中

  2. 新建文件夹mkdir build

  3. 进入build目录

  4. Set installation path and build type : cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local . . .. ..
    It specifies that build type is “Release Mode” and installation path is /usr/local. Observe the -D before each option and … at the end. In short, this is the format:
    cmake [-D ] [-D ] …
    You can specify as many flags you want, but each flag should be preceded by -D.
    你也可以安装额外的功能:比如TBB,documentation,GPU等等

    1. Enable TBB and Eigen support:
      cmake -D WITH_TBB=ON -D WITH_EIGEN=ON . . .. ..
    2. Enable documentation and disable tests and samples
      cmake -D BUILD_DOCS=ON -D BUILD_TESTS=OFF
      -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF . . .. ..
    3. Disable all GPU related modules.
      cmake -D WITH_OPENCL=OFF -D WITH_CUDA=OFF
      -D BUILD_opencv_gpu=OFF -D BUILD_opencv_gpuarithm=OFF
      -D BUILD_opencv_gpubgsegm=OFF -D BUILD_ opencv_gpucodec=OFF
      -D BUILD_opencv_gpufeatures2d=OFF -D BUILD_opencv_gpufilters=OFF
      -D BUILD_opencv_gpuimgproc=OFF -D BUILD_opencv_gpulegacy=OFF
      -D BUILD_opencv_gpuoptflow=OFF -D BUILD_opencv_gpustereo=OFF
      -D BUILD_opencv_gpuwarping=OFF . . .. ..
    4. Set installation path and build type
      cmake -D CMAKE_BUILD_TYPE=RELEASE
      -D CMAKE_INSTALL_PREFIX=/usr/local . . .. ..
  5. make

  6. make install

移动可执行文件

su mv /usr/local/lib/python2.7/site-packages/cv2.so /usr/lib/python2.7/→site-packages

1.2

安装Contrib模块
有些模块包含在称为opencv_contrib的资源库中,他们可以在https://github.com/Itseez/opencv_contrib下载,这与Opencv不同。强烈建议安装这些模块,因为他们含有Opencv没有的功能,例如人脸识别等。

下载完成之后(无论是zip还是git,推荐使用git,可以用git pull命令来获取),需要重新运行如下的cmake命令,该命令可生成带opencv_contrib模块的Opencv项目:

cmake -DOPENCV_EXTRA_MODULES_PATH = <opencv_contrib>/modules <opencv_source_directory>

如果已经按照标准流程进行安装并在下载opencv的文件夹下创建一个build文件夹,然后运行下面的命令:

mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE = Release -DOPENCV_EXTRA_MODULES_PATH = <opencv_contrib>/modules  -D CMAKE_INSTALL_PREFIX = /usr/local ..
make

如果扩展库文件不能用,考虑安装3.4.2.16版本的opencv-python和opencv-contrib-pyhton的库

实现原理

常用的模块:

  • opencv_core模块,包含了程序库的核心功能,特别是基本的数据结构和算法函数
  • opencv_imgproc模块,包含了主要的图像处理函数。
  • opencv_highgui模块,包含图像,视频读写函数和部分用户界面函数
  • opencv_features2d模块,包含特征点检测器,描述子以及特征点匹配框架
  • opencv_calib3d模块,包含相机标定,双视角几何估计以及立体函数
  • opencv_video模块,包含运动估计,特征跟踪以及前景提取函数和类
  • opencv_objdectect模块,包含目标检测函数,例如面部和人体探测器

所有的这些模块都有一个对应的头文件(位于include文件夹下)。因此,典型的OpenCV C++代码会首先包含必须的模块。例如:

  • include <opencv2/core/core.hpp>
  • include <opencv2/imgproc/imgproc.hpp>
  • include <opencv2/higgui/higgui.hpp>

错误

参考的opencv的一个社区里的解决方案

错误如下


CMake Error at cmake/OpenCVDetectCXXCompiler.cmake:85 (list):
  list GET given empty list
Call Stack (most recent call first):
  CMakeLists.txt:68 (include)


CMake Error at cmake/OpenCVDetectCXXCompiler.cmake:86 (list):
  list GET given empty list
Call Stack (most recent call first):
  CMakeLists.txt:68 (include)


CMake Error at cmake/OpenCVDetectCXXCompiler.cmake:89 (math):
  math cannot parse the expression: "*100 + ": syntax error, unexpected
  exp_TIMES, expecting exp_PLUS or exp_MINUS or exp_OPENPARENT or exp_NUMBER
  (1)
Call Stack (most recent call first):
  CMakeLists.txt:68 (include)


-- Detected version of GNU GCC:  ()

解决方案如下

https://github.com/opencv/opencv/pull/9430/files

sir, this error puzzled me for some hours and i found this github page. i will take OpenCV2.4.13 as example, in file opencv2.4.13/cmake/ OpenCVDetectCXXCompiler.cmake, u have to change “dumpversion” to “dumpfullversion”

explanation is that in gcc with higher version, dumpversion function can’t get true full version number of compiler so that cmake progress will fail.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux安装opencv(附带出错,解决方法参考) 的相关文章

  • 基于Tensorflow+VGG+DBN本地化批量图像识别系统(深度学习+Python)含全部工程源码+视频演示+图片数据集

    目录 前言 总体设计 系统整体结构图 系统流程图 运行环境 1 Python 环境 2 Tensorflow 环境 3 wxPython 环境 4 PIL 环境 模块实现 1 数据预处理 2 模型简化处理 3 用户界面设计 4 翻译模块调用
  • React和Vue的区别

    文章目录 React和Vue的区别 1 监听数据变化的实现原理不同 2 数据流不同 3 组件通信的区别 4 模板渲染方式不同 5 模板渲染过程不同 6 框架本质不同 Virtual Dom MVVM MVC MVP MVC MVP MVVM
  • dd后新盘系统无法启动,解决(下)

    dd后 撤下原盘 用系统光盘 Rescue System mount t ext4 dev sda2 mnt 提示 mount dev sdb2 already mounted or mnt busy mount t ext4 dev sd
  • python基于协同过滤算法的图书推荐系统

    系统权限按管理员和用户这两类涉及用户划分 1 管理员功能需求 管理员登陆后 主要包括首页 个人中心 用户管理 书籍管理 书籍分类管理 热门图书管理 我的收藏管理 系统管理 订单管理等功能 2 用户功能需求 用户登陆后 用户登录进入系统可以实
  • 【Python小项目】-名片管理系统

    1 打印的功能页面 print 10 print 名片管理系统 V0 1 print 1 添加一个新的名片 print 2 删除一个名片 print 3 修改一个名片 print 4 查询一个名片 print 5 退出系统 print 10
  • 生命在于体验

    Done 1 健康饮食 运动健身 学会游泳 2 买了房子 以后就是房奴了 3 河大毕业论文 申请免考 4 云南 青岛 洛阳 5 故宫 古北水镇 玉渊潭 百望山 园艺博览会 罗红艺术馆 南锣鼓巷 典籍博物馆 紫竹院 亿美佳 三里屯 东交民巷
  • 字符串、字节串、十六进制之间转换

    temp ota sign tool 20200722 zip 字符串转字节串 temp1 temp encode utf 8 print temp1 字节串转十六进制 temp2 temp1 hex print temp2 十六进制转字节
  • Python 第三方模块 科学计算 Quantecon模块

    参见 https quantecon org quantecon py 一 简介 1 功能 quanrecon是1个用于计量经济学的高性能开源第3方Python模块 其中包含博弈论 马尔科夫链 优化 随机样本生成等工具 2 使用 1 安装
  • less background-image

    bg image url background image url url 2x png media webkit min device pixel ratio 3 min device pixel ratio 3 background i
  • Vue2国际化(i18n)

    一 安装 安装i18n插件 npm i vue i18n 二 配置 创建文件夹及文件 在src目录下创建lang文件夹 在lang文件夹下新建zh js和en js 分别存放中文和英文语言包 使用export default向外暴露 zh
  • Zotero学习

    看到几个很好的教程 帮助很大 做个备忘 B站 Zotero快速入门 链接 link Zotero基础操作 比Endnote更好用的文献管理软件 链接 link 知乎 Zotero SciHub 青柠学术 链接 link 搭建属于自己的文献数
  • Java API在HDFS上实现文件的上传、下载到本地、创建文件夹、删除文件和重命名文件

    前期准备 一 前期准备 1 Hadoop集群已配置完毕 2 linux系统安装jdk 3 在linux系统中安装并破解IntelliJ IDEA 二 通过JAVA API接口操纵HDFS 1 在IDEA中创建maven项目 2 设置配置文件
  • 大比拼:讯飞星火大模型将超越ChatGPT?

    5月6日 讯飞星火认知大模型成果发布会于合肥举办 会上 备受业界期待的 星火 认知大模型正式发布 讯飞AI学习机 讯飞听见 讯飞智能办公本 讯飞智慧驾舱 讯飞数字员工 四大行业中的五大成果同步演示 发布会全程进行实机展示 引发业界热烈反响
  • 查看Linux内核版本的命令

    方法一 命令 uname a 作用 查看系统内核版本号及系统名称 方法二 命令 cat proc version 作用 查看目录 proc 下version的信息 也可以得到当前系统的内核版本号及系统名称 补充说明 proc文件系统 它不是
  • wazhu架构搭建 小结

    基本的搭建步骤都在这个博客下 https www cnblogs com backlion p 10394369 html 下面写一些我再安装过程中遇到的问题 1 首先安装wazuh中的各个版本都需要一致 例如我安装的是 wazuh man
  • android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context

    问题描述 FATAL EXCEPTION main Process com wuchen juexiao mvvm PID 11732 android util AndroidRuntimeException Calling startAc
  • Linux基础服务11——LNMP架构

    文章目录 一 环境说明 二 安装nginx 三 安装mysql 四 安装php 五 配置nginx 六 配置php 七 验证 一 环境说明 主机 服务 192 168 161 129 nginx 192 168 161 131 mysql
  • Vagrant 扩大磁盘根目录(图文详解)

    Vagrant 扩大磁盘根目录 图文详解 实验环境 root centos72 cat etc redhat release CentOS Linux release 7 2 1511 Core root centos72 uname a
  • 【我的第一千篇文章】

    作为一名Java开发者 我很自豪地宣布 这里是我输出的第一千篇文章 在过去的六年里 我一直坚持每月输出优质内容 并将其分享给了全世界的读者们 这一千篇文章中 有很多关于Java编程的技巧 经验分享 优秀实践示例 案例分析等等 每篇文章都代表

随机推荐

  • 决策树分析例题经典案例_一级造价师考试——工程造价案例分析之2.3决策树分析法在方案评价中的应用...

    一级造价师考试 工程造价案例分析之2 3决策树分析法在方案评价中的应用 决策树分析方法一般会和资金时间价值综合起来进行考核 要会正确绘制决策树 根据资金时间价值计算各机会点的期望值 进行方案选择和决策 1 决策树的概念 决策树是以方框 和圆
  • Maven 命令

    输出依赖树 mvn dependency tree 输出依赖树到指定文件 mvn dependency tree gt tree txt 输出lib mvn dependency copy dependencies DoutputDirec
  • 如何将爬虫的数据添加到mysql数据库中

    以爬取糗事百科中24小时网页中第一列表页中所有文章的内容 作者 搞笑数 评论数为例 将爬取的四项内容存入到mysql数据库中 思路 要想存入到数据库中就需要用到数据库中的表 所以我们首先创建一个名叫 myblog 的数据库 然后在此数据库中
  • PHP 的Laravel 框架

    在windows下 搭建PHP的Laravel框架很简单 先把PHP的安装目录 加入到环境变量里 在命令行能访问到php v 就说明可以了 然后 这些是需求的环境 PHP gt 7 1 3 不用说了 OpenSSL PHP扩展 用compo
  • 51单片机编写60秒倒计时程序

    include
  • linux下mysql安装

    一 解压缩mysql 5 6 4 m7 tar zip 1 gt unzip mysql 5 6 4 m7 tar zip 会生成mysql 5 6 4 m7 tar gz的压缩文件 2 gt tar zxvf mysql 5 6 4 m7
  • mysqlbinlog命令使用

    参考 https www cnblogs com zouhong p 14540380 html https www iteye com blog wx1568934009 2469938 获取二进制日志列表show binary logs
  • Shell Script—线程

    本文主要介绍shell中的线程 线程中的等待和信号 1 线程 Shell中线程的实现有多种方式 目前只介绍通过 符号 通过在命令末尾加上 符号 可以在后台启动一个进程并立即返回 允许Shell进程继续执行其他命令 示例 bin bash N
  • 023.二叉树的最近公共祖先

    题目链接 236 二叉树的最近公共祖先 大概思路 题目要求 给定一个二叉树 找到该树中两个指定节点q p的最近公共祖先x q p一定存在且值不同 最近公共祖先 两个节点共同的祖先 同时深度尽可能大 其中一个可以是祖先本身 思路 q p的最近
  • 作业asd

    餐馆 class Restaurant def init self restaurant name cuisine type self restaurant name restaurant name self cuisine type cu
  • UI设计基础知识点之Android设计规范篇

    目录 基础概念 Android界面设计规范 Android切图标注 安卓开发单位换算 总结 一 基础概念 1 什么是DPI DPI Dots Per Inch 每英寸点数 表示指屏幕密度 是测量空间点密度的单位 最初应用于打印技术中 它表示
  • 杂项:art-template-loader

    ylbtech 杂项 art template loader 1 返回顶部 2 返回顶部 3 返回顶部 4 返回顶部 5 返回顶部 1 https www npmjs com package art template loader 2 ht
  • Vivado中怎么做set_input_delay约束

    参考 https forums xilinx com t5 Timing Analysis Hold violation in ISERDES td p 715121 前言 在STA中 要分析上游器件和FPGA之间的时序关系就得指定inpu
  • VSCode+arm-none-eabi+msys使用Make实现STM32交叉编译

    记录一下在Windows平台下 利用VSCode的arm none eabi扩展和msys使用Make实现STM32的交叉编译 准备 1 安装arm none eabi扩展 在VSCode的扩展窗口 搜索eabi 安装windows arm
  • 解决HttpClient工具中application/x-www-form-urlencoded表单提交时,请求参数中文乱码问题

    一 参数乱码现象 当我去请求第三方接口时 接口接收格式为Form表单的时候 使用HttpClient工具类 这时 对于封装进HttpPost对象里的请求参数 如果有中文参数 会出现乱码的现象 二 代码现象复现 controller层 Res
  • c语言中\n,\t,\r,\b的用法和区别

    1 n 最容易理解 就是 换行 跳到下一行的起始位置 2 t 也容易理解 即跳到下一制表位 举例如下图所示 3 r 回车 不换行 r后边的数字替代 这一行最开始的相等数目的数字 举例 4 b 退格 也就是电脑键盘上的backspace b后
  • python pip命令安装 pyinstaller失败提示Installing build dependencies ... error

    1 现象 2 解决方案 自己下载 手动安装 2 1 下载地址 https pypi org project PyInstaller 3 5 files 2 2 解压到E python PyInstaller 3 5 2 3 cmd进入到解压
  • 差分信号简述

    差分信号是一种信号传输技术 传统的传输方法使用一根信号线传输信号 一根地线接地 差分信号需要在两根线上都传输信号 且两个信号振幅相同 相位相反 这样的信号就是差分信号 使用差分信号传输的好处是 只要传输正负信号的两根线在物理上是紧密耦合在一
  • echart柱状图Y轴最小间隔问题,Y轴不显示小数

    今天来说说echart 柱状图 Y轴的最小值 间隔问题 最近项目中用到柱状图 数据量少的时候 Y轴会出现小数 但是我们产品小哥哥说不能出现小数 好了 那就开干 option xAxis type category data Mon Tue
  • Linux安装opencv(附带出错,解决方法参考)

    前言 lib库 运行库 dev库 开发 gdb库 调试 安装 1 1 OpenCV是一个开源的软件 在一个source文件下 包含了所有的源代码文件 使用哪种操作系统 windows还是linux 使用哪种编译器 注意 执行安装包很可能不仅