GAME101 OpenCV环境安装

news2025/1/19 14:23:41

文章目录

  • Opencv 库编译
    • Step 1.下载源码
    • Step 2. 使用CMake编译
    • Step3. 解决CMake 过程重的报错
      • 错误1: 错误的Python版本:
        • 错误1 解决办法
      • 错误2:下载ippicv_2020_win_ia32_20191018_general.zip失败
        • 错误2 解决办法
      • 错误3:ffmpeg相关文件下载失败
        • 错误3 解决办法
      • Step 4. 配置opencv_contrib
        • 继续报错
      • Step 5. 选择BUILD_opencv_world选项
      • Step 6. 点击Generate
      • Step 7. 编译OpenCV.sln工程
        • 编译时遇到的报错
        • 生成内容
  • 添加环境变量
  • 测试是否安装成功

Opencv 库编译

作业2中用到了OpenCV

Step 1.下载源码

  1. 下载OpenCV 源码 OpenCV 4.5.4
  2. 下载OpenCV_contrib OpenCV_contrib 4.5.4
    注意:这两个源码的版本号要一致

Step 2. 使用CMake编译

  1. 将源码解压后,不要放在有中文路径的目录
  2. 使用管理员权限打开CMake, 一开始未使用,发现点击Configure时会报错,使用管理员权限打开CMake后,点击Configure未报错。
  3. 源码目录:opencv-4.5.4
  4. build目录:OpenCV_build(以下简称build目录)
    在这里插入图片描述

注意:选择版本,我这里是x64 版本。
为什么要选x64版本原因

“因为代码中有使用std::optional这个特性,这个特性是c++17中才有的,这个坑反应了好久才找到原因。
改完之后发现使用默认的x86设置,std::optional依然会报错,所以选了x64之后,环境就彻底配好了。所以第一步对应的库也要安装64位的。”

Step3. 解决CMake 过程重的报错

上述在Config过程中,会报很多错误,主要是一些下载的原因:

错误1: 错误的Python版本:

CMake’s ‘find_host_package(PythonInterp 2.7)’ found wrong Python version

Found PythonInterp: C:/Program Files/Python310/python.exe (found suitable version "3.10.11", minimum required is "2.7") 
CMake Warning at cmake/OpenCVDetectPython.cmake:81 (message):
  CMake's 'find_host_package(PythonInterp 2.7)' found wrong Python version:

  PYTHON_EXECUTABLE=C:/Program Files/Python310/python.exe

  PYTHON_VERSION_STRING=3.10.11

  Consider providing the 'PYTHON2_EXECUTABLE' variable via CMake command line
  or environment variables

Call Stack (most recent call first):
  cmake/OpenCVDetectPython.cmake:271 (find_python)
  CMakeLists.txt:622 (include)
  

错误1 解决办法

修改opencv-4.5.4\cmake\OpenCVDetectPython.cmake最后部分内容

if(PYTHON_DEFAULT_EXECUTABLE)
    set(PYTHON_DEFAULT_AVAILABLE "TRUE")
elseif(PYTHON3_EXECUTABLE AND PYTHON3INTERP_FOUND)
    # Use Python 3 as default Python interpreter
    set(PYTHON_DEFAULT_AVAILABLE "TRUE")
    set(PYTHON_DEFAULT_EXECUTABLE "${PYTHON3_EXECUTABLE}")
elseif(PYTHON2_EXECUTABLE AND PYTHON2INTERP_FOUND)
    # Use Python 2 as fallback Python interpreter (if there is no Python 3)
    set(PYTHON_DEFAULT_AVAILABLE "TRUE")
    set(PYTHON_DEFAULT_EXECUTABLE "${PYTHON2_EXECUTABLE}")
endif()

参考链接1.How to use Cmake to build opencv with python 3 instead of python 2
参考链接2.Install OpenCV GPU with CUDA for Windows10

错误2:下载ippicv_2020_win_ia32_20191018_general.zip失败

Download: ippicv_2020_win_intel64_20191018_general.zip
Download failed

IPPICV: Download: ippicv_2020_win_intel64_20191018_general.zip
Try 1 failed
CMake Warning at cmake/OpenCVDownload.cmake:202 (message):
  IPPICV: Download failed: 35;"SSL connect error"

  For details please refer to the download log file:

  C:/Resource/OpenCV/OpenCV_build/CMakeDownloadLog.txt

Call Stack (most recent call first):
  3rdparty/ippicv/ippicv.cmake:37 (ocv_download)
  cmake/OpenCVFindIPP.cmake:259 (download_ippicv)
  cmake/OpenCVFindLibsPerf.cmake:12 (include)
  CMakeLists.txt:727 (include)

错误2 解决办法

  1. 下载ippicv_2020_win_intel64_20191018_general.zip压缩文件
    打开build目录下的CMakeDownloadLog.txt文件,里面会提示下载的链接,
https://raw.githubusercontent.com/opencv/opencv_3rdparty/xxxxxx/ippicv/ippicv_2020_win_intel64_20191018_general.zip
  1. 拷贝压缩文件
    直接在浏览器内下载下来,然后将文件保存到opencv-4.5.4/3dparty/ippicv文件夹中
    在这里插入图片描述
  2. 修改ippicv.cmake 文件
  set(THE_ROOT "${OpenCV_BINARY_DIR}/3rdparty/ippicv")
  # ocv_download(FILENAME ${OPENCV_ICV_NAME}
               # HASH ${OPENCV_ICV_HASH}
               # URL
                 # "${OPENCV_IPPICV_URL}"
                 # "$ENV{OPENCV_IPPICV_URL}"
                 # "https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
               # DESTINATION_DIR "${THE_ROOT}"
               # ID IPPICV
               # STATUS res
               # UNPACK RELATIVE_URL)

错误3:ffmpeg相关文件下载失败

opencv_videoio_ffmpeg.dll
opencv_videoio_ffmpeg_64.dll
ffmpeg_version.cmake

FFMPEG: Download: opencv_videoio_ffmpeg.dll
Try 1 failed
CMake Warning at cmake/OpenCVDownload.cmake:202 (message):
  FFMPEG: Download failed: 35;"SSL connect error"

  For details please refer to the download log file:

  C:/Resource/OpenCV/OpenCV_build/CMakeDownloadLog.txt

Call Stack (most recent call first):
  3rdparty/ffmpeg/ffmpeg.cmake:20 (ocv_download)
  modules/videoio/cmake/detect_ffmpeg.cmake:14 (download_win_ffmpeg)
  modules/videoio/cmake/init.cmake:7 (include)
  modules/videoio/cmake/init.cmake:11 (add_backend)
  cmake/OpenCVModule.cmake:298 (include)
  cmake/OpenCVModule.cmake:361 (_add_modules_1)
  cmake/OpenCVModule.cmake:385 (ocv_glob_modules)
  CMakeLists.txt:917 (ocv_register_modules)


FFMPEG: Download: opencv_videoio_ffmpeg_64.dll
Try 1 failed
CMake Warning at cmake/OpenCVDownload.cmake:202 (message):
  FFMPEG: Download failed: 35;"SSL connect error"

  For details please refer to the download log file:

  C:/Resource/OpenCV/OpenCV_build/CMakeDownloadLog.txt

Call Stack (most recent call first):
  3rdparty/ffmpeg/ffmpeg.cmake:20 (ocv_download)
  modules/videoio/cmake/detect_ffmpeg.cmake:14 (download_win_ffmpeg)
  modules/videoio/cmake/init.cmake:7 (include)
  modules/videoio/cmake/init.cmake:11 (add_backend)
  cmake/OpenCVModule.cmake:298 (include)
  cmake/OpenCVModule.cmake:361 (_add_modules_1)
  cmake/OpenCVModule.cmake:385 (ocv_glob_modules)
  CMakeLists.txt:917 (ocv_register_modules)


FFMPEG: Download: ffmpeg_version.cmake
Try 1 failed
CMake Warning at cmake/OpenCVDownload.cmake:202 (message):
  FFMPEG: Download failed: 35;"SSL connect error"

  For details please refer to the download log file:

  C:/Resource/OpenCV/OpenCV_build/CMakeDownloadLog.txt

Call Stack (most recent call first):
  3rdparty/ffmpeg/ffmpeg.cmake:20 (ocv_download)
  modules/videoio/cmake/detect_ffmpeg.cmake:14 (download_win_ffmpeg)
  modules/videoio/cmake/init.cmake:7 (include)
  modules/videoio/cmake/init.cmake:11 (add_backend)
  cmake/OpenCVModule.cmake:298 (include)
  cmake/OpenCVModule.cmake:361 (_add_modules_1)
  cmake/OpenCVModule.cmake:385 (ocv_glob_modules)
  CMakeLists.txt:917 (ocv_register_modules)

错误3 解决办法

  1. 下载缺失的两个文件
    参考CMakeDownloadLog.txt 里面的链接下载dll文件, ffmpeg_version.cmake的链接另存为文件,最后得到三个文件,如下所示:
    在这里插入图片描述
  2. 复制文件到opencv-4.5.4/3dparty/ffmepg目录
    在这里插入图片描述
  3. 修改ffmpeg.cmake文件
 set(status TRUE)
  # foreach(id ${ids})
    # ocv_download(FILENAME ${name_${id}}
               # HASH ${FFMPEG_FILE_HASH_${id}}
               # URL
                 # "$ENV{OPENCV_FFMPEG_URL}"
                 # "${OPENCV_FFMPEG_URL}"
                 # "https://raw.githubusercontent.com/opencv/opencv_3rdparty/${FFMPEG_BINARIES_COMMIT}/ffmpeg/"
               # DESTINATION_DIR ${FFMPEG_DOWNLOAD_DIR}
               # ID FFMPEG
               # RELATIVE_URL
               # STATUS res)
    # if(NOT res)
      # set(status FALSE)
    # endif()
  # endforeach()

但仍然不够,到这里再次执行Configure时,会继续报错:

  CMake Error at modules/videoio/cmake/detect_ffmpeg.cmake:16 (include):
  include could not find requested file:

    C:/Resource/OpenCV/OpenCV_build/3rdparty/ffmpeg/ffmpeg_version.cmake
Call Stack (most recent call first):
  modules/videoio/cmake/init.cmake:7 (include)
  modules/videoio/cmake/init.cmake:11 (add_backend)
  cmake/OpenCVModule.cmake:298 (include)
  cmake/OpenCVModule.cmake:361 (_add_modules_1)
  cmake/OpenCVModule.cmake:385 (ocv_glob_modules)
  CMakeLists.txt:917 (ocv_register_modules)

参考链接Error at modules/videoio/cmake/detect_ffmpeg.cmake
网友的解决方案

I have encountered the same problem,mainly because cmake can't find ffmpeg_version.cmake file:
the src code file has a 3rdparty, 
and your build dir has a 3rdparty, 
cmake only search your build dir for ffmpeg_version.cmake, 
so just copy the src 3rdparty's ffmpeg to the build dir's 3rdparty. bingo! problem fixed.

因此,按照上述描述,将opencv-4.5.4/3rdparty/ffmpeg整个文件夹拷贝到build目录下的3rdparty目录下,如下所示:

在这里插入图片描述

Step 4. 配置opencv_contrib

在这里插入图片描述

继续报错

在配置opencv_contrib后,点击configure,会继续报错,还是因为没有下载成功的原因,
主要是wechat_qrcode 和 xfeatures2d 相关的文件。根据CMakeDownloadLog.txt里面的提示链接,手动下载缺失的文件,最后存放到build目录下的downloads目录下对应的文件夹:最后文件夹里面的文件如下所示。

  • wechat_qrcode
    在这里插入图片描述

  • xfeatures2d
    在这里插入图片描述
    至此,再次点击Congifure后,没有出现错误。

Step 5. 选择BUILD_opencv_world选项

这样,最后的库文件是一个dll文件。
OpenCV cmake配置项BUILD_opencv_world的说明

按照默认的CMakeLists.txt配置,BUILD_opencv_world默认是OFF状态,没有勾选。
编译生成的项目,会在build\lib\Debug目录下生成大量的lib和dll文件。
例如:有时网上设置项目环境时有人在链接器附加依赖项时需添加下列lib,当照着配置后会报错找不到…lib,在你的/x64/lib文件夹下压根没这些东西是因为你在编译的时候勾选了BUILD_opencv_world。
CMake中有一个选项名为BUILD_opencv_world,默认是不勾选的,它可以把所有的组件综合到一个名为opencv_world310d.lib或opencv_world310.lib的文件中,使以后配置工程时输入此单一文件即可。

在这里插入图片描述
如果编译成功,会生成下面两个lib
在这里插入图片描述

Step 6. 点击Generate

如果成功,显示Generate done.

  Install to:                    C:/Resource/OpenCV/OpenCV_build/install
-----------------------------------------------------------------

Configuring done
Generating done

生成OpenCV.sln工程

Step 7. 编译OpenCV.sln工程

菜单栏->生成->选择生成的项目配置。
注意:这里如果没有安装Python的Debug版本,在编译的时候,会报错。
在这里插入图片描述

编译时遇到的报错

LINK : fatal error LNK1104: 无法打开文件“python310_d.lib”

报错的原因参考无法打开pythonxxx_d.lib

所以应该是安装Python的时候,没有选择Debug版本。后来我重新卸载了已安装的Python,重新安装时选择Python Debug版本。
重新编译后成功

生成内容

  • install
    里面是我们需要的lib、dll以及头文件
    在这里插入图片描述
    在这里插入图片描述

添加环境变量

系统属性->环境变量->Path->添加opencv 库路径
在这里插入图片描述

测试是否安装成功

新建一个空的工程:

  • 设置工程属性
    在这里插入图片描述

在这里插入图片描述

  • Demo
#include	<iostream>
#include	<opencv2/opencv.hpp>

using namespace cv;
using namespace std;

int main() {
	Mat img = imread("C:\\Resource\\OpenCV\\OpenCV_Project\\OpenCVTest\\x64\\Debug\\scenetext01.jpg");
	imshow("img", img);
	waitKey();
}
  • 输出
    在这里插入图片描述

  • 弹出的INFO信息
    在这里插入图片描述
    关于这些信息

  • 如何避免这些错误
    参考这个网友提供的,我猜是因为Configure的时候没有勾选相关的内容勾选相关选项
    在这里插入图片描述
    但是我这里没有试验,因为编译库的话又要好久~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/754952.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣 509.斐波那契数

509.斐波那契数 1 题目2 思路3 代码4 结果 1 题目 题目来源&#xff1a;力扣&#xff08;LeetCode &#xff09;https://leetcode.cn/problems/fibonacci-number 斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为斐波那契数列 。该数列由 0 和 1 开始&…

git国内下载

https://npm.taobao.org/mirrors/git-for-windows/点进去最新的最后一条 选择.exe文件点击

二、遥感物理基础(2)物体的发射与反射辐射特征

前言 本文内容较为枯燥&#xff0c;是遥感的物理原理&#xff0c;作者已经尽量去帮助读者理解了&#xff0c;无论是精细的阅读还是走马观花&#xff0c;长期下来都能提高读者对专业知识的理解&#xff1b;作者非物理专业&#xff0c;对某些知识点的总结仅是个人理解&#xff0c…

win7 刻录机刻录文件显示 “准备好写入到”光盘中的文件”

一、问题描述 就是这么突然&#xff0c;好好的刻录机&#xff0c;突然就刻录不了了&#xff0c;昨天都可以正常刻录&#xff0c;今天就显示&#xff1a; 准备好写入到”光盘中的文件&#xff0c;然后还显示待刻录的文件…&#xff0c;右键选择刻录就直接弹出光盘了&#xff1f…

吴恩达机器学习2022-Jupyter特征缩放

1可选实验室: 特征缩放和学习率(多变量) 1.1 目标 在这个实验室里: 利用前一实验室开发的多变量线性回归模型程序在具有多种功能的数据集上运行梯度下降法探讨学习速度 alpha 对梯度下降法的影响通过使用 z 分数标准化的特征缩放来提高梯度下降法的性能 1.2 工具 您将使用…

第七章:FCN——Fully Convolutional Networks for Semantic Segmentation

0.摘要 卷积神经网络是强大的视觉模型&#xff0c;能够产生特征的层级结构。我们展示了通过端到端、像素到像素的训练的卷积神经网络在语义分割方面超越了现有技术的最新成果。我们的关键发现是构建“全卷积”网络&#xff0c;它可以接受任意大小的输入并生成相应大小的输出&am…

OSPF和VLAN综合实验

目录 题目 1.IP地址的规划设计 2.搭建拓扑并进行基础IP配置 3.配置虚拟局域网 1&#xff09;按子网划分要求配置PC1和PC2 检测&#xff1a;输入[SW1]display vlan进行检查 配置路由器R3 检测&#xff1a;用PC1去访问PC2 2&#xff09;配置拓扑中其余路由器的网关以及回…

基于安森美音频处理器Ezairo 8300助听器设计

v hezkz17进数字音频系统研究开发交流答疑 Ezairo 8300 系统框图 许多现代音频产品将受益于安森美(onsemi)基于DSP的EZAIRO系列音频处理器。 安森美&#xff08;ON Semiconductor&#xff09;的EZAIRO系列音频处理器是基于数字信号处理器&#xff08;DSP&#xff09;的产品系列…

​​Layui之用户管理实例(对数据的增删改查)

目录 ​编辑一、R工具介绍&#xff08;&#xff09; ​编辑二、数据表的增删改查 ​编辑2.1我们先得从查询数据库的语句入手 2.2优化dao类 2.4UserAction类 2.5前台的页面实现增删改查操作 2.6 userManage页面JS 2.7user新增、修改iframe层js 前言 上一篇我分享了…

http1.0、http1.1 http 2.0

HTTP/1.0是无状态、无连接的应用层协议。 无连接 无连接&#xff1a;每次请求都要建立连接&#xff0c;需要使用 keep-alive 参数建立长连接、HTTP1.1默认长连接keep-alive   无法复用连接&#xff0c;每次发送请求都要进行TCP连接&#xff0c;TCP的连接释放都比较费事&…

vue-next-admin vue3.x版本,table自定义

vue3.x版本&#xff0c;将table进行了封装。使用起来更方便了。但是&#xff0c;有时候我们需要将一组信息显示到一列中。所以我将其进行了简单的二次改造。支持table-column自定义。 table改造代码 <template><div class"table-container"><el-tabl…

R语言的水文、水环境模型优化技术及快速率定方法与多模型案例实践

在水利、环境、生态、机械以及航天等领域中&#xff0c;数学模型已经成为一种常用的技术手段。同时&#xff0c;为了提高模型的性能&#xff0c;减小模型误用带来的风险&#xff1b;模型的优化技术也被广泛用于模型的使用过程。模型参数的快速优化技术不但涉及到优化本身而且涉…

高速入门知识03:路阻抗匹配方法

文章目录 前言一、简单并行匹配二、戴维南并行匹配三、主动并行匹配四、串联RC并行匹配五、串联匹配六、差分对匹配七、收发器片内匹配 前言 高速电路阻抗匹配方法 阻抗不匹配会导致信号在传输线上来回反射&#xff0c;使负载接收器出现振铃。振铃降低了接收 器的动态范围&am…

Centos使用docker部署nacos

Centos使用docker部署nacos 对于使用Docker部署Nacos&#xff0c;您可以按照以下步骤进行操作&#xff1a; 在您的服务器上安装Docker和Docker Compose。创建一个用于存储Nacos数据的目录&#xff0c;例如/path/to/nacos/data。创建一个docker-compose.yml文件&#xff0c;并…

【数学建模】统计分析方法

文章目录 1.回归分析2. 逻辑回归3. 聚类分析4. 判别分析5. 主成分分析6. 因子分析7. 对应分析 1.回归分析 数据量要多&#xff0c;样本总量n越大越好——>保证拟合效果更好&#xff0c;预测效果越好 一般n>40/45较好 方法 建立回归模型 yiβ0β1i……βkxkiεi 所估计的…

vscode 端口转发实现端口映射,实现端口自由

用vscode连接server进行开发&#xff0c; 是非常方便的&#xff0c;但很多时候&#xff0c;server的端口开放的很有限&#xff0c;那么就可以利用vscode进行端口映射 举一个应用场景&#xff1a; 先通过A利用vscode 连接B&#xff0c;然后再vscode 的port窗口进行端口转发&…

Hadoop 之 HDFS 配置与使用(二)

HDFS 配置与使用 一.HDFS配置二.HDFS Shell1.默认配置说明2.shell 命令 三.Java 读写 HDFS1.Java 工程配置2.测试 一.HDFS配置 ## 基于上一篇文章进入 HADOOP_HOME 目录 cd $HADOOP_HOME/etc/hadoop ## 修改文件权限 chown -R root:root /usr/local/hadoop/hadoop-3.3.6/* ## …

LLMs之Baichuan:Baichuan-13B模型的简介(包括Baichuan-7B)、安装、使用方法之详细攻略

LLMs之Baichuan&#xff1a;Baichuan-13B模型的简介(包括Baichuan-7B)、安装、使用方法之详细攻略 导读&#xff1a;2023年6月15日&#xff0c;百川智能(搜狗创始人王小川创建)发布了首个大模型成果Baichuan-7B&#xff0c;开源可商用&#xff0c;它在C-Eval、AGIEval和Gaokao中…

java通过url获取视频时长(无需下载文件)

1、导入架包 <!-- jave 核心依赖 --><dependency><groupId>ws.schild</groupId><artifactId>jave-core</artifactId><version>2.4.6</version></dependency><!-- 根据不同操作系统引入不同FFmpeg包 --><!-- wi…

KEIL安装额外版本的arm compiler v6.16 v5.06update7

很多时候安装了一个版本的keil&#xff0c;但是别人的工程是拿另一个版本做的&#xff0c;重新安装也不是不行&#xff0c;但是会占很多地方&#xff0c;文件关联也很乱套&#xff0c;所以记录一下怎么安装额外的&#xff0c;比如我的是keil mdk530&#xff0c;自带Compiler v6…