windows上源码安装opencv-python(opencv源码安装)

opencv源码安装记录

前言

因为我要用opencv的GStreamer功能,但是通过python的 pip install opencv-python 是没有这个功能的。

所以需要通过源码安装opencv-python,直接从 opencv 源码包去安装<注意并非opencv-python源码包>,然后倒腾好久试错,才产生了下文。

1. 环境配置(准备工作)

  • python3.11
  • numpy1.24.2
  • Cmake3.26.3
  • Visual Studio 2022

2. 参考opencv官网

Building OpenCV from source

官网安装的步骤写的很详细了,我就不单独再誊抄一遍。

这里要注意一点,如果你要将你的opencv编译到你的python环境安装包目录下,需要注意这个变量是否对:
在这里插入图片描述
上图的出现要等 configure 执行完后才有,注意看一下,没问题就执行 generate 按钮。可参考 如何从OpenCV源码编译生成OpenCV-Python的SDK开发包 一文。

然后对照官网的源码安装操作一路到底即可。

FAQ

cmake安装ffmpeg等出现ssl或者网络错误

Refer1: 方案一: 修改build目录下 download_with_curl.sh
这个方案是修改build目录下的一个 download_with_curl.sh 文件,然后通过windows下的git-gui去执行下载,但是我试了效果不太好,就成功了一次…,各位看官可以尝试一下。相比之下,我个人推荐下面这种方式,我用着很ok。

Refer2: 直接在 opencv/3rdparty/ 下找到 ffmpegippicv 目录,修改里面的 cmake 文件,如下:
在这里插入图片描述

在这里插入图片描述
均将其里面下载文件的url加上 https://ghproxy.com/ 前缀以代理下载:

### ippicv.cmake

# 核心代码部分
ocv_download(FILENAME ${OPENCV_ICV_NAME}
    HASH ${OPENCV_ICV_HASH}
    URL
    "${OPENCV_IPPICV_URL}"
    "$ENV{OPENCV_IPPICV_URL}"
    "https://ghproxy.com/https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"	# 修改
    DESTINATION_DIR "${THE_ROOT}"
    ID IPPICV
    STATUS res
    UNPACK RELATIVE_URL)

# --------------------------------------
### ffmpeg.cmake

# 核心代码部分
foreach(id ${ids})
  ocv_download(FILENAME ${name_${id}}
    HASH ${FFMPEG_FILE_HASH_${id}}
    URL
    "$ENV{OPENCV_FFMPEG_URL}"
    "${OPENCV_FFMPEG_URL}"
    "https://ghproxy.com/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()

直接从cmake文件改动,就可以在使用 cmake-gui 构建的时候避免出现无法下载对应文件的问题,如果一次不成,可以configure多次。

最终终于安装成功,第一次踩坑装起来真的是麻烦。fxxk。。。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值