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

news/2024/5/7 18:45:32/文章来源:https://blog.csdn.net/a15561415881/article/details/130065082

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 IPPICVSTATUS resUNPACK 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 FFMPEGRELATIVE_URLSTATUS res)if(NOT res)set(status FALSE)endif()
endforeach()

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试篇-Java输入输出三兄弟大比拼:IO、NIO、AIO对比分析

1、Java I/O发展史 Java IO&#xff08;Input/Output&#xff09;是Java语言中用于读写数据的API&#xff0c;它提供了一系列类和接口&#xff0c;用于读取和写入各种类型的数据。下面是Java IO发展史的简要介绍&#xff1a; JDK 1.0&#xff08;1996年&#…

如何在大厂做好架构演进?

1 架构演进的定义 1.1 定义 通过设计新的系统架构(4R)&#xff0c;来应对业务和技术的发展变化。 1.2 关键点 新架构新的复杂度 1.3 目的 应对业务和技术的发展变化后带来新的复杂度。 案例 淘宝去IOE&#xff0c;是因为业务发展大了后&#xff0c;IOE的成本和可控性难…

MySQL SQL优化 【建议熟读并背诵】

插入数据 批量插入数据 insert into tb_test values(1,Tom),(2,Cat),(3,Jerry);手动控制事务 start transaction; insert into tb_test values(1,Tom),(2,Cat),(3,Jerry); insert into tb_test values(4,Tom),(5,Cat),(6,Jerry); insert into tb_test values(7,Tom),(8,Cat…

事实胜于雄辩,苹果MacOs能不能玩儿机器/深度(ml/dl)学习(Python3.10/Tensorflow2)

坊间有传MacOs系统不适合机器(ml)学习和深度(dl)学习&#xff0c;这是板上钉钉的刻板印象&#xff0c;就好像有人说女生不适合编程一样的离谱。现而今&#xff0c;无论是Pytorch框架的MPS模式&#xff0c;还是最新的Tensorflow2框架&#xff0c;都已经可以在M1/M2芯片的Mac系统…

【计算机网络-应用层】域名系统 DNS、文件传输协议 FTP、电子邮件

文章目录1 域名系统 DNS1.1 域名结构1.2 域名服务器1.2.1 根域名服务器1.2.2 顶级域名服务器1.2.3 权限域名服务器1.2.4 本地域名服务器1.3 域名解析过程1.3.1 递归查询1.3.2 递归与迭代相结合查询1.3.3 本地域名服务器的高速缓存2 文件传输协议 FTP2.1 主动模式&#xff08;建…

CSDN,感谢遇见【我的一周年创作纪念日】

机缘 第一次遇见CSDN已经是7年前的事了&#xff0c;那时的我还是一名初二的学生&#xff0c;由于沉迷于玩具战争这款游戏&#xff08;很遗憾这款游戏已经停服&#xff09;&#xff0c;里面有许多大佬利用各种手段去开挂&#xff0c;所以我意外的接触到了浏览器抓包等计算机技术…

Kafka消费者组和分区再均衡

应用程序使用KafkaConsumer向Kafka订阅主题&#xff0c;并从订阅的Topic上接收消息。 要想知道如何从Kafka读取消息&#xff0c;需要先了解消费者和消费者组的概念。 1、消费者和消费者组 原因&#xff1a;假设我们有一个应用程序需要从一个Kafka Topic中读取消息并验证&…

C++实现前缀树

文章目录1. 什么是前缀树2. 前缀树的实现2.1 前缀树的基本结构2.2 插入2.3 word出现了几次2.3 word作为前缀出现几次2.4 删除1. 什么是前缀树 假设这里有一个字符串数组&#xff0c;和一个树的根结点&#xff1a; 这个结点的pass意思是&#xff1a;有几个字符通过了这个结点。…

(学习日记)2023.4.10

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

Jetpack Compose之对话框和进度条

概述 对话框和进度条其实并无多大联系&#xff0c;放在一起写是因为两者的内容都不多&#xff0c;所以凑到一起&#xff0c;对话框是我们平时开发使用得比较多的组件&#xff0c;像隐私授权&#xff0c;用户点击删除时给用户提示这是一个危险操作等&#xff0c;进度条的使用频…

npm与node版本不匹配问题解决思路

1.报错 npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: ‘electron-packager17.1.1’, npm WARN EBADENGINE required: { node: ‘> 14.17.5’ }, npm WARN EBADENGINE current: { node: ‘v12.22.9’, npm: ‘8.5.1’ } npm WARN EBADENGINE } np…

3款免费好用的电脑录屏工具

案例&#xff1a;电脑录屏工具哪款免费又好用&#xff1f; “我想要挑选一款适合自己的好用的电脑录屏软件&#xff0c;但是我尝试了很多款录屏软件结果都不尽人意。免费版的软件功能少&#xff0c;录制效果差&#xff0c;想要高级功能需要付费解锁。想问问大家有没有免费好用…

Mybatis操作Oracle中的Clob和Blob字段

文章目录Mybatis操作Oracle中的Clob和Blob字段1. Oracle中创建测试的表结构&#xff1a;Byte_Array_Test2. Mybatis配置MapperXml&#xff0c;用Map<String, Object>接受Clob和Blob的数据&#xff0c;如下图&#xff1a;3. 代码中获取Clob和Blob的值3-1 接收Blob和Clob数…

每日做题总结——day01

目录 选择题 for循环 指针数组 位段 getchar 大小端存储 进制与格式控制符 位运算 数组指针 二维数组的存储 计算二进制中1的个数 斐波那契数列求递归次数 编程题 删除公共字符 排序子序列 倒置字符串 选择题 for循环 解析&#xff1a;该题主要看for…

el-form, 时间选择器,不管选择什么时间范围,值一直是当月一号

yyyy-MM-DD 修改为 yyyy-MM-dd 就好了&#xff0c;bug千奇百怪 修改前 修改后

极致低延迟收集器ZGC探索——亚毫秒级,常数级暂停O(1)原理

ZGC 收集器 ZGC收集器&#xff08;Z Garbage Collector&#xff09;是由Oracle公司为HotSpot JDK研发的&#xff0c;最新一代垃圾收集器。有说法使用这个名目标是取代之前的大部分垃圾收集器&#xff0c;所以才叫ZGC&#xff0c;表示极致的Extremely&#xff0c;或者最后的&am…

RHCE——shell脚本练习

一.实验要求 1、判断web服务是否运行&#xff08;1、查看进程的方式判断该程序是否运行&#xff0c;2、通过查看端口的方式判断该程序是否运行&#xff09;&#xff0c;如果没有运行&#xff0c;则启动该服务并配置防火墙规则。 ​2、使用curl命令访问第二题的web服务&#xff…

Vulnhub靶场DC-1练习

目录0x00 准备0x01 主机信息收集0x02 站点信息收集0x03 漏洞查找与利用0x00 准备 下载链接&#xff1a;https://download.vulnhub.com/dc/DC-1.zip 介绍&#xff1a;There are five flags in total, but the ultimate goal is to find and read the flag in root’s home dir…

Linux宝塔安装msyql服务,默认密码,允许远程登录问题解决

一、首先我在宝塔安装mysql服务是5.7 1.1MySQL数据库5.6之前&#xff08;不包括&#xff09;默认密码为空&#xff0c;用户不用输入密码&#xff0c;直接回车登陆 mysql -uroot -p password:(空) 1.2.MySQL数据库5.6之后&#xff08;包括&#xff09;默认密码是MySQL数据库随机…

Springboot基础学习之(十四):修改使用数据库中的数据源,修改为Druid:通过Druid实现后台监控

文章的顺序&#xff0c;是本人学习Springboot这个框架的先后顺序 这一篇文章讲解的是如何整合数据库中的数据源 Java程序很大一部分要操作数据库&#xff0c;为了提高性能操作数据库的时候&#xff0c;又不得不使用数据库连接池。 Druid 是阿里巴巴开源平台上一个数据库连接池实…