OpenCV4环境配置

news/2024/5/10 2:48:32/文章来源:https://blog.csdn.net/qq_61228493/article/details/132396659

0.安装mingw64

官网链接:mingw

  1. 安装红框标记下载免安装版本,解压可用。
    image-20230809214627758
  2. 将解压后的mingw64\bin添加到path环境变量
  3. cmd中输入gcc -v,出现下图所示即配置成功

image-20230809214807503

1.下载OpenCV源码

源码下载

官网:Releases - OpenCV

image-20230808164909641

运行下载好的exe文件,指定一下源码的存放路径

下载好的源码如下图所示

image-20230808165216872

扩展文件下载

下载官网:Tags · opencv/opencv_contrib (github.com)

下载后解压放到OpenCV路径下

image-20230809230948205

2.安装CMAKE

已经编译好的OpenCV源码:https://pan.baidu.com/s/1NF5PElfjJT49pnpqgQy3zg?pwd=ksz0

如果使用我编译好的,直接跳到4.5,去配置环境变量,然后进入clion进行测试

使用的是mingw-build文件夹,可以删除除VS-build文件夹

VS-build文件夹是使用VS进行build的,那个如果不使用可以删掉(VS-build),vsbuild的文件有十几个G

官网:Download | CMake

image-20230808170430046

运行安装文件,中间需要勾选添加环境变量

image-20230808170627223

更改安装路径

image-20230808170701742

3.ckame编译OpenCV

  1. 在OpenCV源码路径下新建一个 mingw-build文件夹
  2. 将build/bin目录下opencv_videoio_ffmpeg470_64.dll文件拷贝至sources/3rdparty/ffmpeg目录下
  3. 打卡cmake,如下图所示,选择文件路径

image-20230808171506788

  1. 点击configure,在弹出的窗口中选择Mingw Makefile,编译器默认的就行

image-20230808223910146

  1. 当第一次编译完后,出现红色背景的内容,勾选下图所示内容,然后继续点击configure

image-20230809211613677

image-20230808231857217

image-20230809231055252

  1. 多次点击configure,直到没有红色出现

中间可能在下载时会报错

FFMPEG: Download failed: 28;“Timeout was reached”

解决方式:

  1. 将下载链接复制下来,输入到浏览器中进行下载

  2. 打开opencv的source文件夹下的.cache文件夹中

  3. 复制没下载成功的文件的名,将在网页下载成功的文件重命名为刚才复制对的名

  4. 将重命名后的文件放到.cache文件夹下的各个文件夹中,将原始文件进行替换【确实文件放置位置的方法:下载链接中有对应的文件夹名】

  5. 重新点击configure

image-20230808235948300

  1. 点击generator

image-20230809000016173

4.安装编译文件

  1. 进入mingw-build文件夹
  2. 在路径上输入cmd,然后回车(建议直接以管理员身份运行,普通方式运行可能会出现一些报错)

image-20230809000210918

image-20230809000229036

  1. 输入mingw32-make -j 16

报错解决:

  1. 如果出现 error: 'recursive_mutex' in namespace 'std' does not name a type,则重新下载posix版的mingw64 ,然后再在cmake中重新编译OpenCV源码
  2. 如果出现 undefined reference to _Unwind_Resume'之类的,以管理员身份运行cmd,重新编译

image-20230809213424554

  1. 出现之类Anaconda3-/hdf5的报错,不使用Anaconda3的Python环境更换其他Python环境或者直接不使用Python环境(直接在path环境变中先删除Anaconda的Python配置,更换为其他的Python或者不配置Python),重新用cmake进行编译,然后再在cmd运行

image-20230810110217317

image-20230809213446910

  1. 输入mingw32-make install

image-20230809213644437

  1. 添加环境变量,将mingw-build\bin目录添加到系统环境变量

image-20230809221112296

5.Clion配置使用

  1. 新建一个项目
  2. 将下面的内容复制到CMakeLists.txt
set(OpenCV_DIR E:/kaifa/C/opencv/mingw-build/install) #这里刚才编译的OpenCV的路径
find_package(OpenCV REQUIRED)
target_link_libraries(OpenCVtest ${OpenCV_LIBS}) #OpenCVtest是你的项目名称

image-20230809215512469

  1. 运行main.cpp文件
#include "iostream"
#include<opencv2/opencv.hpp>using namespace std;
using namespace cv;int main() {Mat img = imread("E:/C-Project/OpenCVtest/1.jpg");cout << img.type() << endl;if (img.empty()) {cout << "Error" << endl;return -1;}imshow("Lena", img);waitKey();return 0;}
  1. 弹出图片则表示环境配置成功

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

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

相关文章

关于2023年8月19日PMI认证考试准考信下载及考场规定等有关事项

各位考生&#xff1a; 为保证参加2023年8月19日PMI项目管理资格认证考试的每位考生都能顺利进入考场参加考试&#xff0c;请完整阅读本通知内容。 一、关于准考信下载 为确保您顺利进入考场参加8月份考试&#xff0c;请及时登录本网站个人系统下载并打印准考信&#xff0c;准考…

idea插件grep console最佳实践

首发博客地址 https://blog.zysicyj.top/ 参考博客&#xff1a;https://blog.csdn.net/ayunnuo/article/details/123997304 效果 配置 具体颜色 日志级别前景色背景色Error#FF0000#370000Warn#FFC033#1A0037Info#00FFF3无Debug#808080无 本文由 mdnice 多平台发布

Sience子刊 新研究揭示:COVID-19病毒影响人体线粒体功能,或成治疗新途径

自SARS-CoV-2病毒引发的COVID-19大流行暴发以来,研究人员一直致力于探索为何该病毒相较于其他冠状病毒&#xff0c;会引发如此严重和长期的影响。近期,费城儿童医院(CHOP)团队和COVID-19国际研究小组(COV-IRT)合作发现,新冠病毒对线粒体&#xff08;人体细胞的能量工厂&#xf…

React通过docx-preview预览Word文档

前言 在基于React的Web应用中&#xff0c;我们经常遇到需要预览和展示Word文档的需求。而docx-preview是一个优秀的React组件库&#xff0c;可以帮助我们实现在Web页面上预览Word文档的功能。本文将介绍如何使用docx-preview组件来实现Word文档的预览&#xff0c;并提供一个案例…

Linux 线程同步——条件变量

一、条件变量的概念 如果说互斥锁是用于同步线程对共享数据的访问的话&#xff0c;那么条件变量则是用于在线程之间同步共享数据的值。条件变量提供了一种线程间的通知机制&#xff1a;当某个共享数据达到某个值的时候&#xff0c;唤醒等待这个共享数据的线程。如下图所示&…

juc概述和Lock接口

目录 一、什么是JUC 1、JUC概述 2、进程与线程 3、线程的状态 4、wait/sleep 的区别 5、并发与并行 6、管程 7、用户线程和守护线程 二、Lock接口 1、Synchronized 使用synchronized实现售票案例 使用synchronized实现增减变量操作 2、什么是 Lock 买票例子使用lo…

Android基础——英文复习资料

一.填空题 1.An Android project must be bulit before it is run&#xff0c;compiling the java source code(.java flises)into Java bytetcode(.class files)and the into .dex files 2.In Android an activity stores the code for a screen of an app&#xff0c; …

PostMan 测试项目是否支持跨域

使用PostMan可以方便快速的进行跨域测试。 只需要在请求头中手动添加一个Origin的标头&#xff0c;声明需要跨域跨到的域&#xff08;IP&#xff1a;端口&#xff09;就行&#xff0c;其余参数PostMan会自动生成。添加此标头后&#xff0c;请求会被做为一条跨域的请求来进行处…

【快速解决方案】浏览器的安全策略不允许通过 file:// 协议直接加载外部文件(最省事的方法)

目录 问题摘要 解决办法 检验结果 问题摘要 Failed to load resource: net::ERR_FILE_NOT_FOUND&#x1f308; Cute Code Editor &#x1f308;.html:162 Fetch API cannot load file:///D:/%E6%A1%8C%E9%9D%A2/%E4%B8%83%E5%A4%95%E5%BF%AB%E4%B9%90/index.txt. URL scheme …

网银快捷支付接口怎么申请?

快速支付是一种方便的支付方式&#xff0c;允许用户在不重复输入卡号、密码等详细信息的情况下&#xff0c;使用预绑定的银行卡或支付账户进行快速支付。 在快速支付中&#xff0c;用户可以选择在商家网站、移动应用或支付平台上使用快速支付选项&#xff0c;并选择绑定的银行…

数据结构之——(手撕)顺序表

本章会介绍的知识点如下图&#xff1a; 1&#xff1a; 顺序表的概念&#xff1a;顺序表是用一段物理地址连续的存储单元依次存储数据的线性结构&#xff0c;通常我们使用数组来表示&#xff0c;对数组进行增删查改。 顺序表的结构&#xff1a;逻辑结构与物理结构都是内存中一块…

《vue3实战》在created生命周期中运用slice()方法结合element plus组件实现电影评价系统的分页

目录 前言 电影评价系统的分页是什么&#xff1f;它具体的作用体现在哪些方面&#xff1f; 一、slice的含义、语法和作用以及created的作用 slice是什么&#xff1f;slice有什么语法&#xff1f;slice的作用体现在哪些方面&#xff1f; created生命周期的作用&#xff1a;…

【C语言学习】指针变量

一、运算符& 1.&运算符可以获得变量的地址&#xff0c;它的操作数必须是变量 int i; printf("%x",&i);2.地址的大小是否与int相同取决于编译器 int i; printf("%p",&i);//%p以32进制输出i的地址二、指针变量 指针变量是保存地址的变量…

precision指标的average参数

同样适用于recall、F1 分类任务种类 先说一下分类任务分几种&#xff0c;分类任务主要分为二分类、多分类和多标签这三种。 现在假设我们有一个样本&#xff0c;叫s 二分类是最常见的&#xff0c;将s分给A或B这两类。 多分类是将s分给A或B或C或更多的类别。 多标签是有A、B、…

VSCode如何为远程安装预设(固定)扩展

背景 在使用VSCode进行远程开发时&#xff08;python开发之远程开发工具选择_CodingInCV的博客-CSDN博客&#xff09;&#xff0c;特别是远程的机器经常变化时&#xff08;如机器来源于动态分配&#xff09;&#xff0c;每次连接新的远程时&#xff0c;都不得不手动安装一些开…

【网络基础实战之路】VLAN技术在两个网段中的实际应用详解

系列文章传送门&#xff1a; 【网络基础实战之路】设计网络划分的实战详解 【网络基础实战之路】一文弄懂TCP的三次握手与四次断开 【网络基础实战之路】基于MGRE多点协议的实战详解 【网络基础实战之路】基于OSPF协议建立两个MGRE网络的实验详解 【网络基础实战之路】基于…

laravel aws s3

由于公司有境外项目&#xff0c;服务器、文件存储都是用的亚马逊&#xff0c;真真地是没有用过&#xff0c;在此记录一下自己的s3研究结果 Laravel - aws - s3 第一步创建用户&#xff0c;生成秘钥&#xff1a; 第二步创建存储桶&#xff1a; 1、创建存储桶时&#xff0c;以下…

html动态爱心代码【一】(附源码)

前言 七夕马上就要到了&#xff0c;为了帮助大家高效表白&#xff0c;下面再给大家带来了实用的HTML浪漫表白代码(附源码)背景音乐&#xff0c;可用于520&#xff0c;情人节&#xff0c;生日&#xff0c;表白等场景&#xff0c;可直接使用。 效果演示 文案修改 var loverNam…

对于个人来说,ChatGPT有什么用,缺点有哪些?

ChatGPT聊天机器人风靡全球&#xff0c;但也有一些人它认为模糊了原创性的界限&#xff0c;扼杀了创造力&#xff0c;还有些人害怕被机器人取代&#xff0c;由此失去生计和职业发展前景。 但更多的人更愿意积极拥抱ChatGPT&#xff0c;除了内容本身&#xff0c;最主要的是相比…

Power apps:做个简单的扫码应用

Power apps的扫码应用只能客户端使用 一、创建一个窗口"扫码APP”,插入媒体工具“条形码读卡器” 二、如果需要在扫码时做一个动作&#xff0c;可以设置它的属性&#xff0c;比如跳转窗口之类的 三、添加一个文本标签&#xff0c;实现在扫码后标签显示条形码&#xff08…