window环境下opencv的安装和使用(clion)

本文介绍了在安装OpenCV时遇到的ffmpeg_version.cmake下载失败的问题,以及如何通过Powershell手动下载并解决hash校验不匹配的错误。详细步骤包括检查CMakeDownloadLog.txt,使用Powershell命令行下载文件,并修改CMAKE_INSTALL_PREFIX。最后,通过make install完成安装,并提到了在CMakeLists.txt中添加find_package的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文纯属个人记录,不喜勿喷

首先在opencv官网下载源码

 然后使用cmake进行安装,这里唯一要注意的地方是可能有部分的文件cmake会下载失败,需要手动下载,如何找到这些文件的下载地址这个地方可以参考这个帖子,主要就是检查CMakeDownloadLog.txt这个文件的内容然后挨个去下载放到文件里对应的路径即可,重点说一下ffmpeg_version.cmake这个文件,如果你直接用浏览器访问它对应的网址,并不会直接进行下载,而是在网页端展示他的内容。

如果你通过另存为下载这个文件,那么在cmake上重新configure时会发现hash校验对不上。解决方法有很多,这里说一下我的解决方案,通过powershell命令行直接下载这个文件,具体步骤是:

1.管理员方式打开powershell

2.输入

$client = new-object System.Net.WebClient

回车。

3.输入

 $client.DownloadFile('#1', '#2')

#1替换成网址,#2替换成下载的地址(注意要精确到文件名,而不是到目录为止就行了)

把下载的文件放到对应的位置之后,重新configure,然后generate就好了。

修改一下CMAKE_INSTALL_PREFIX的值到C:/Program Files (x86),方便后面修改CMakeLists.txt的时候使用find_package,具体原因可以看上一篇文章

进入命令行

cd 你generate的目标文件夹
make install

如果中途报错提示类似include <mutex>这样的信息,请参考贴吧帖子的8楼,尝试重新安装一下mingw。

安装完成之后,通过修改CMakeLists.txt添加find_package引入即可~

### 如何在 CLion 中配置使用 OpenCV 进行 C++ 开发 #### 安装 OpenCV 库 为了能够在 CLion 中顺利使用 OpenCV,首要条件是确保已经正确安装OpenCV 库。对于 macOS 用户来说,可以借助 Homebrew 来简化这一过程;而对于 Windows 用户,则可能需要手动下载并解压预构建的二进制包到指定路径。 #### 修改 `CMakeLists.txt` 文件 创建一个新的 CLion 项目之后,编辑该项目下的 `CMakeLists.txt` 文件来引入必要的 OpenCV 组件。具体操作如下: - 设置环境变量指向本地存储的 OpenCV 构建目录; - 更新模块搜索路径以便找到 OpenCV 提供的相关脚本; - 调用 `find_package()` 函数加载所需的组件列表; - 将发现的头文件夹加入编译选项中; - 明确指出链接哪些特定于应用程序需求的核心库其他辅助库[^2]。 ```cmake set(OpenCV_DIR "C:\\openCV\\opencv\\mingw-build") # 替换为实际存放位置 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/") find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS}) target_link_libraries(testOpenCV ${OpenCV_LIBS}) # 更改 'testOpenCV' 至对应目标名称 ``` #### 编写测试程序验证配置有效性 完成以上步骤后,可以通过简单的图像读取显示例子来检验整个流程是否正常工作。这里给出一段基础代码片段用于展示基本功能[^3]。 ```cpp #include <opencv2/opencv.hpp> using namespace cv; int main() { std::string image_path = "path/to/image"; Mat img = imread(image_path, IMREAD_COLOR); if (img.empty()) { printf("Could not open or find the image\n"); return -1; } namedWindow("Display window", WINDOW_AUTOSIZE); imshow("Display window", img); int k = waitKey(0); // 等待按键事件关闭窗口 destroyAllWindows(); return 0; } ``` 需要注意的是,在 Windows 平台上执行此类应用时,应当留意资源文件相对于可执行文件的位置关系,因为这直接影响到了程序能否正确访问外部数据源[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值