news 2026/4/22 11:53:29

HoRain云--OpenCV 安装(C++)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HoRain云--OpenCV 安装(C++)

🎬 HoRain 云小助手:个人主页

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

目录

⛳️ 推荐

下载 OpenCV

Windows 安装 OpenCV

配置 Visual Studio

源码编译安装

安装前的准备

下载 OpenCV 源码

使用 CMake 配置 OpenCV

4、配置环境变量(可选)

在 C++ 项目中使用 OpenCV

1、创建 C++ 项目

实例

2、编译和运行

3、运行

常见问题及解决方案

1、找不到 OpenCV 库

2、图片无法加载

3、窗口无法显示


OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,包含了数百个计算机视觉算法,广泛应用于图像处理、视频分析、物体检测、人脸识别等领域。

C++ 是 OpenCV 的原始开发语言,适合高性能应用。

在 C++ 项目中使用 OpenCV 之前,首先需要安装 OpenCV 库。

下载 OpenCV

访问 OpenCV 的官方下载页面:https://opencv.org/releases/。

选择适合你操作系统的版本(例如 Windows、Linux、macOS)并下载,例如OpenCV 4.x 的 Windows 预编译包。 。

Windows 安装 OpenCV

配置 Visual Studio

1、打开 Visual Studio,创建一个 C++ 项目。

2、配置包含目录

右键项目 -> "属性" -> "VC++目录" -> "包含目录",添加:

C:\opencv\build\include

3、配置库目录

右键项目 -> "属性" -> "VC++目录" -> "库目录",添加:

C:\opencv\build\x64\vc15\lib

4、配置链接器

右键项目 -> "属性" -> "链接器" -> "输入" -> "附加依赖项",添加:

opencv_world4xx.lib

4xx是 OpenCV 版本号,例如opencv_world450.lib


源码编译安装

安装前的准备

在安装 OpenCV 之前,确保你的系统已经安装了以下工具:

下载 OpenCV 源码

我们可以从 OpenCV 的 GitHub 仓库 下载源码,或者直接从 OpenCV 的 官方网站 下载预编译的版本。

使用 Git 克隆源码:

git clone https://github.com/opencv/opencv.git git clone https://github.com/opencv/opencv_contrib.git # 可选,包含额外的模块

使用 CMake 配置 OpenCV

1、创建一个构建目录并进入:

mkdir build cd build

2、使用 CMake 生成构建文件:

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

如果你需要额外的模块(如opencv_contrib),可以添加以下参数:

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..

3、编译并安装 OpenCV:

make -j4 # 使用 4 个线程进行编译 sudo make install

4、配置环境变量(可选)

在 Linux 或 macOS 上,你可能需要将 OpenCV 的库路径添加到环境变量中:

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

在 Windows 上,你可以通过系统属性 -> 高级系统设置 -> 环境变量来添加 OpenCV 的库路径。


在 C++ 项目中使用 OpenCV

安装完成后,你可以在 C++ 项目中使用 OpenCV。

以下是一个简单的示例程序,展示如何使用 OpenCV 加载并显示一张图片。

1、创建 C++ 项目

创建一个新的 C++ 源文件,例如main.cpp

编写以下代码:

实例

#include <opencv2/opencv.hpp> #include <iostream> int main() { // 读取图片 cv::Mat image = cv::imread("example.jpg"); // 检查图片是否成功加载 if (image.empty()) { std::cout << "无法加载图片!" << std::endl; return -1; } // 显示图片 cv::imshow("Display Image", image); // 等待按键 cv::waitKey(0); return 0; }

2、编译和运行

使用以下命令编译代码:

g++ main.cpp -o main `pkg-config --cflags --libs opencv4`

3、运行

运行生成的可执行文件:

./main

如果一切正常,你应该能够看到图片在窗口中显示出来。


常见问题及解决方案

1、找不到 OpenCV 库

如果在编译时遇到找不到 OpenCV 库的错误,请确保你已经正确安装了 OpenCV,并且环境变量配置正确。

我们可以使用pkg-config来检查 OpenCV 的安装路径:

pkg-config --cflags --libs opencv4

2、图片无法加载

如果图片无法加载,请检查图片路径是否正确,以及图片文件是否存在。你可以使用绝对路径来确保路径正确。

3、窗口无法显示

如果窗口无法显示,请确保你的系统支持图形界面,并且 OpenCV 的 GUI 模块已正确安装。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/21 20:41:06

3D Morphable Models在HeyGem中的建模基础推测

3D Morphable Models在HeyGem中的建模基础推测 在当前数字人技术快速落地的背景下&#xff0c;像HeyGem这样的语音驱动视频生成平台正悄然改变内容创作的方式。用户只需上传一段音频和一个包含人脸的视频&#xff0c;系统就能自动生成该人物“亲口讲述”这段内容的视频。整个过…

作者头像 李华
网站建设 2026/4/19 23:15:51

Angular交互核心03,响应式表单:FormControl、FormGroup 与 FormBuilder 全解析

在 Angular 开发中&#xff0c;表单是交互层的核心组件之一。Angular 提供了两种表单实现方式&#xff1a;模板驱动表单和响应式表单。其中响应式表单&#xff08;Reactive Forms&#xff09;以其可测试性、可复用性和对表单状态的精准控制&#xff0c;成为中大型项目的首选。本…

作者头像 李华
网站建设 2026/4/17 21:41:54

为什么你的C#交错数组总是越界?(3步精准定位访问错误)

第一章&#xff1a;为什么你的C#交错数组总是越界&#xff1f;在C#中&#xff0c;交错数组&#xff08;Jagged Array&#xff09;是一种数组的数组&#xff0c;其内部每个子数组可以拥有不同的长度。这种灵活性虽然强大&#xff0c;但也容易引发索引越界异常&#xff08;IndexO…

作者头像 李华
网站建设 2026/4/21 12:33:04

【C#高级开发必修课】:3个关键场景带你玩转不安全类型与指针操作

第一章&#xff1a;C#不安全代码的引入与基础概念在某些高性能或底层操作场景中&#xff0c;C# 提供了对指针和内存直接访问的能力&#xff0c;这被称为“不安全代码”。尽管 C# 运行在 .NET 的托管环境中&#xff0c;具备垃圾回收和类型安全机制&#xff0c;但在需要与非托管代…

作者头像 李华
网站建设 2026/4/18 8:40:15

C#集合筛选实战精要(高手都在用的5种写法)

第一章&#xff1a;C#集合筛选的核心概念与应用场景在C#开发中&#xff0c;集合筛选是处理数据的核心操作之一。通过LINQ&#xff08;Language Integrated Query&#xff09;&#xff0c;开发者可以以声明式语法高效地从数组、列表、字典等集合中提取符合条件的元素&#xff0c…

作者头像 李华