目录
一,环境
二,下载和配置 OpenCV
三,创建一个 Visual Studio 项目
四,配置 Visual Studio 项目
五,编写并编译 OpenCV 程序
一,环境
- Windows 11 家庭中文版
- Microsoft Visual Studio Community 2022 (64 位) - Current版本 17.5.3
- OpenCV – 4.8.0
二,下载和配置 OpenCV
1.在Windows下安装OpenCV,你通常有两种选择
- 使用预编译的二进制库(推荐): 这是最常见的方法。可以从OpenCV官方网站下载已经编译好的二进制版本,无需自己编译。这些预编译库已经包含了OpenCV的头文件和库文件,可以直接在项目中使用。
- 前往 OpenCV Releases 页面 下载最新的版本(选择Windows版)。
- 解压下载的文件到指定路径下,会得到一个文件夹,例如
opencv/build,
内容参考如下。然后按照前面提到的方式配置你的项目以使用这些预编译库。- 从源代码编译OpenCV(高级选项): 如果你需要进行高级配置、自定义编译选项或者希望在Windows上编译OpenCV的源代码,你可以选择这种方法。但这通常较为复杂,需要更多时间和资源。
- 首先,从OpenCV的 GitHub仓库 下载源代码。
- 安装CMake,可以从 CMake官网 下载并安装最新的CMake版本,这是一个用于配置和生成编译项目的工具。
- 打开CMake GUI,在 “Where is the source code” 中选择OpenCV的源代码目录。在 “Where to build the binaries” 中选择一个用于生成编译结果的目标文件夹,通常建议在源代码目录之外创建一个名为 “build” 的文件夹。
- 点击 “Configure” 按钮。CMake将提示你选择生成器,选择合适的Visual Studio版本(例如,Visual Studio 2022)。
- 配置选项:在CMake配置过程中,可以根据需要设置不同的选项,如编译类型、安装路径、开启/关闭模块等。确保根据自己的需求进行配置。(网上搜索)
- 点击 “Generate” 按钮,这将生成一个Visual Studio项目文件。
- 打开生成的Visual Studio项目文件(通常是.sln文件)。
- 在Visual Studio中,选择 “Release” 或 “Debug” 配置(根据需要选择),然后点击 “生成”(Build)按钮。这将编译OpenCV。
- 编译完成后,可以在生成的目标文件夹中找到编译好的OpenCV库文件(通常在
build/install
文件夹下)。
2.配置 OpenCV 环境变量
- 使用键盘快捷键 Win + R 打开运行对话框。在运行对话框中,输入
sysdm.cpl
,然后按 Enter 键。这将直接打开系统属性窗口的 “高级” 选项卡,从那里访问环境变量配置。- 添加OpenCV的
bin
文件夹路径,以便系统可以找到OpenCV的DLL文件。例如:D:\Program Files\OpenCV\build\x64\vc16\bin
(请根据你的实际路径进行替换)。- 添加OpenCV的
lib
文件夹路径,以便编译器和连接器可以找到OpenCV的库文件。例如:D:\Program Files\OpenCV\build\x64\vc16\lib
(请根据你的实际路径进行替换)。- 确保点击了 "确定" 按钮,然后关闭所有窗口。
- 打开命令提示符,输入 opencv_version 命令,检查OpenCV是否配置成功。如果配置成功,会输出OpenCV的版本号,表明OpenCV库可在命令行中正常运行。
三,创建一个 Visual Studio 项目
使用Visual Studio创建一个新的C++项目,或者打开一个现有的项目。
四,配置 Visual Studio 项目
- 打开项目属性,选择 “配置属性 > VC++ 目录”,然后将 “包含目录” 配置为包含OpenCV的
include
文件夹(opencv\build\include
),将 “库目录” 配置为包含OpenCV的lib
文件夹(opencv\build\x64\vc16\lib
)。- 在 “配置属性 > 链接器 > 输入” 下,将 “附加依赖项” 添加要使用的 OpenCV 库文件(例如 opencv_world480d.lib)。
五,编写并编译 OpenCV 程序
以下示例是读取一张图片并显示它
#include <iostream> #include <opencv2/opencv.hpp> //#pragma comment(lib,"opencv_world480d.lib") int main() { cv::Mat image = cv::imread("your_image.jpg"); if (image.empty()) { std::cerr << "Error: Could not read image file." << std::endl; return -1; } cv::imshow("My Image", image); cv::waitKey(0); return 0; }