当前位置: 首页 > news >正文

用Cmake build OpenCV后,在VS中查看OpenCV源码的方法(环境VS2022+openCV4.8.0) Part I

用Cmake build OpenCV后,在VS中查看OpenCV源码的方法

Part I

        写在最前面,最近这段时间的工作需要用opencv,不仅是调包,还要能够看到opencv的源码。然后就跟着网上的教程实现了一遍,在实现过程中,遇到了不少问题,现一一记录下来。(最近的工作和生活都很难。。。也充满了挑战。但我依然要维持自己创作文章的动机,希望能够帮到更多的人。)


1,下载

Releases - OpenCVOpenCV官网:Releases - OpenCV

Download | CMakeCmake官网:Download | CMake


 2,安装

把下载好的opencv-4.8.0.zip,解压到D盘新建的一个名叫“opencv480”的文件夹中。

 

 cmake的安装注意一下这个选项就行了。


3,用cmake build openCV

3,1 在放置opencv文件的相同目录下,创建一个新的文件夹"opencv480_build"用于保存build后的数据。 

3.2打开刚刚安装好的camke,并选择正确的路径

第一个是我们要build的源文件,来自于openCV官方压缩包中的source文件夹。

下面那个where to build the binaries就配置我们刚刚新建的那个文件夹"Rebuild_sources"。

3.3 然后选择 configure

 

3.4 选择对应的VS版本,我的是2022

选择平台x64

 

 然后点击Finish,Cmake就开始自动配置了。


4,配置完成。

 虽然cmake完成了配置,但在配置的过程中也出现了很多红色的警告和错误。所有这些错误都会保存到"opencv480_build"文件夹下的“CMakeDownloadLog.txt”中。 

 


 5,消除configure中遇到的问题

打开这个log,我们一个个的解决。

5.1,ippicv_2021.8_win_intel64_20230330_general.zip

先看第一个(看不清的点击图像放大看),复制他给的这个网址,然后下载下来一个叫“ippicv_2021.8_win_intel64_20230330_general.zip”的文件。

 把这个文件放在.cache文件夹下。

 然后再把这个文件改成他说的这个“71e4f......”文件名后,并放在相应目录下。

替换掉原来的同名文件 

 然后在重新点击configure,并查看最新生成的log。

 这时,系统提示mach上了,说明第一个问题解决了。

 5.2,log显示缺少这个文件"v0.1.2a.zip"

 同样,去log中提供的网址下载,更名后放到他指定的目录下。

 然后重新执行configure,并查看新的log,发现第二个问题也修复了。

5.3 找不到opencv_videoio_ffmpeg.dll

根据系统提供的网址下载下来后,更名,覆盖.cache\ffmpeg中的旧文件。

并把未改名的源文件放到.cache的目录下。 

 

5.4 opencv_videoio_ffmpeg_64.dll

操作同上

 

 成功,就剩最后一个了

5.5 ffmpeg_version.cmake

这个文件的下载跟前面的几个都不一样,在网页空白处点击鼠标右键,选择另存为。

 把下载后的文件,重命名为这个文件名,并保存到指定的目录中。

同样,更换文件名,并放在这个目录下。 

 

 单击configure,log显示全部通过了。


6,单击generate。

 generate成功后,在之前创建的“opencv480_build”文件夹中会出现一个叫“OpenCV.sln”的文件。


  (全文完)

作者 --- 松下J27

参考文献(鸣谢):

        1,Download | CMake

        2,OpenCV - Open Computer Vision Library

 版权声明:文中的部分图片,文字或者其他素材,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27 

http://www.lryc.cn/news/141647.html

相关文章:

  • 如何使用Docker搭建ZooKeepe集群
  • 【javaweb】学习日记Day3 - Ajax 前后端分离开发 入门
  • SQL注入漏洞复现:探索不同类型的注入攻击方法
  • 大彩串口屏使用记录
  • Qt http 的认证方式以及简单实现
  • 【图像分割】实现snake模型的活动轮廓模型以进行图像分割研究(Matlab代码实现)
  • 【MongoDB系列】1.MongoDB 6.x 在 Windows 和 Linux 下的安装教程(详细)
  • 5.网络原理之初识
  • 【Linux】进程状态|僵尸进程|孤儿进程
  • ASEMI快恢复二极管APT80DQ60BG特点应用
  • 【Python爬虫】使用代理ip进行网站爬取
  • 识别图片中的文字
  • 第七章:借阅管理【基于Servlet+JSP的图书管理系统】
  • 算法 for GAMES
  • 自研分布式IM-HubuIM RFC草案
  • tableau基础学习1:数据源与绘图
  • 探索经典算法问题与解决方案
  • 【Linux】DNS系统,ICMP协议,NAPT技术
  • BI技巧丨Window应用之同环比
  • 【Mac】编译Spring 源码和Idea导入
  • 手把手教你用 ANSYS workbench
  • Kotlin开发笔记:协程基础
  • 自学设计模式(简单工厂模式、工厂模式、抽象工厂模式)
  • NFS:使⽤ NFS 为远程客户端提供共享文件系统
  • 2022-kaggle-nlp赛事:Feedback Prize - English Language Learning(超多注释讲解)
  • 第十三课 宾语从句
  • Docker容器与虚拟化技术:GitHub账户注册
  • thinkphp安装workman
  • L1-036 A乘以B(Python实现) 测试点全过
  • 代码随想录第五十三天