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

OpenCV安装及配置

为了配合本人写的cuda教程系列,这里写一个OpenCV的安装和配置教程。
进入OpenCV官网:https://opencv.org/,在主页面找到下图所示的安装包链接:
在这里插入图片描述
点击Release后,进入新页面选择Windows安装包,选择新版OpenCV即可。在这里插入图片描述
下载完exe格式的安装包后,双击,按照安装包给的提示安装即可。不过要记住OpenCV的安装路径。
用CMake配置OpenCV的开发环境。其CMakeLists.txt可以写为下列内容:

cmake_minimum_required(VERSION 3.20)
project(OpenCVTest)
# 指定OpenCV路径
set(OpenCV_DIR "C:/opencv/build")  # 替换为你的路径
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})
# Windows需额外设置库目录
if(WIN32)link_directories("${OpenCV_DIR}/x64/vc16/lib")
endif()

其中,set(OpenCV_DIR "C:/opencv/build")应该设置为自己的实际路径。这样OpenCV的配置就算完成了。找个示例试试。
新建一个文件夹,里面放入build空文件夹和main.cpp以及CMakeList.txt(build和它们同一级别)。CMakeLists.txt如上所示,main.cpp如下所示:

#include <opencv2/opencv.hpp>
int main()
{cv::Mat img = cv::imread("C :\\Users\\libai\\Desktop\\test.jpg", cv::IMREAD_UNCHANGED);cv::namedWindow("展示图片", cv::WINDOW_AUTOSIZE);cv::imshow("展示图片", img);cv::waitKey(0);cv::destroyAllWindows();
}

然后,进入build文件夹,鼠标右键,在终端中打开文件夹,然后在终端中输入:cmake ..,项目生成成功后,在build中打开sln,右键ALL BUILD,生成,右键项目名OpenCVTest,设为启动项。然后在VS的上方点击本地windows调试器,开始运行代码。注意一开始会提示如下:
在这里插入图片描述
只需在C:\opencv\build\x64\vc16\bin目录下(根据你的实际安装路径来,这里是直接安装到C盘的路径)找到这个文件,然后将其复制到项目的build/Debug(Debug和下图红框中的对应)文件夹下。
在这里插入图片描述
注意,如果红框内的是Release, 需在C:\opencv\build\x64\vc16\bin目录下找到缺失的dll并将其复制到build/Release文件夹下。
运行后,如果能正确显示图片,表明OpenCV安装无误,后面可以愉快地使用了!!!
注意,运行时终端中显示的:
在这里插入图片描述
不用管!!!

http://www.xdnf.cn/news/17917.html

相关文章:

  • 【C 学习】06-算法程序设计举例
  • 基于51单片机的智能吊灯
  • 零改造迁移实录:2000+存储过程从SQL Server滑入KingbaseES V9R4C12的72小时
  • Obot MCP 网关:用于安全管理 MCP 服务器采用的开源平台
  • 大模拟 Major
  • 《吃透 C++ 类和对象(中):const 成员函数与取地址运算符重载解析》
  • Horse3D游戏引擎研发笔记(六):在QtOpenGL环境下,仿Unity的材质管理Shader绘制四边形
  • 复杂度扫尾+链表经典算法题
  • 《P1194 买礼物》
  • JAVA 关键字
  • OpenCV---getStructuringElement 结构元素获取
  • MySQL知识点(上)
  • LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。
  • 推荐一款高性能状态机管理解决方案
  • 专题三_二分_x 的平方根
  • Linux软件编程(五)(exec 函数族、system、线程)
  • 【Go语言-Day 36】构建专业命令行工具:`flag` 包入门与实战
  • Struts文件泄露漏洞分析与修复方案
  • Swift 实战:用最长递增子序列算法解“俄罗斯套娃信封”问题(LeetCode 354)
  • Unity 实现逼真书本翻页效果
  • Vue响应式系统在超大型应用中的性能瓶颈
  • 深入浅出的 RocketMQ-面试题解析
  • 力扣hot100 | 普通数组 | 53. 最大子数组和、56. 合并区间、189. 轮转数组、238. 除自身以外数组的乘积、41. 缺失的第一个正数
  • LeetCode 面试经典 150_数组/字符串_最长公共前缀(20_14_C++_简单)(暴力破解)(求交集)
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘fairseq’问题
  • 关于Manus AI与多语言手写识别的技术
  • 学习笔记与效率提升指南:编程、记忆与面试备考
  • 中级统计师-会计学基础知识-第一章 账户与复试记账
  • diffusers学习--stable diffusion的管线解析
  • Cursor 分析 bug 记录