windows下vscode配置opencv
摘要:本文详细记录了在Windows系统下通过vcpkg工具链安装配置OpenCV4的过程。作者首先解决网络问题安装vcpkg和CMake,然后通过vcpkg安装OpenCV4及依赖项(Protobuf、Eigen3等)。文章提供了完整的配置脚本,包括环境变量设置、CMakeLists.txt编写和测试代码,并重点说明了OpenCV_ROOT路径配置和CMP0074策略设置。最后通过显示OpenC
我本想直接下载opencv使用,奈何编译太过麻烦,以及CMake总是会到vcpkg中找opencv,本来我没在vcpkg下opencv主要是当时网络环境差下不下来,那现在没办法,只好顶着网络问题搞定它。
1.安装
安装vcpkg和CMake不再赘述,方法有很多人写了,主要的一点事要注意CMake的版本与你安装的opencv版本是否对应。
然后就是按部就班的安装opencv
# 1. 卸载当前的 OpenCV(如果已设置)
# 2. 使用 vcpkg 安装对应版本的 OpenCV
# 进入 vcpkg 目录
cd D:\ProjectC\Dev\tools\vcpkg
# 安装 OpenCV for VS2019 x86
.\vcpkg install opencv4:x86-windows
# 或者安装 x64 版本(如果需要)
.\vcpkg install opencv4:x64-windows
# 安装完成后,集成到系统
.\vcpkg integrate install
2.验证配置
创建一个简单的验证脚本 test_opencv.cmake:
# test_opencv.cmake
cmake_minimum_required(VERSION 3.15)# 测试不同设置
message("Testing OpenCV configuration...")# 测试1: 使用 OpenCV_ROOT
set(OpenCV_ROOT "D:/ProjectC/Dev/tools/vcpkg/installed/x86-windows/share/opencv4")
find_package(OpenCV QUIET)if(OpenCV_FOUND)
message("SUCCESS: Found OpenCV via OpenCV_ROOT")
message(" Version: ${OpenCV_VERSION}")
else()
message("FAILED: OpenCV not found via OpenCV_ROOT")
endif()# 测试2: 使用 find_package 默认查找
unset(OpenCV_ROOT CACHE)
unset(OpenCV_DIR CACHE)
find_package(OpenCV QUIET)if(OpenCV_FOUND)
message("SUCCESS: Found OpenCV via default search")
message(" Version: ${OpenCV_VERSION}")
message(" Config: ${OpenCV_CONFIG_FILE}")
else()
message("FAILED: OpenCV not found via default search")
endif()
运行:
cmake -P test_opencv.cmake
我在这步的时候运行报错提示Protobuf缺失的问题,所以我又安装了Protobuf
# 进入 vcpkg 目录
cd D:\ProjectC\Dev\tools\vcpkg# 安装 Protobuf
.\vcpkg install protobuf:x86-windows# 安装完成后,集成到系统
.\vcpkg integrate install
如果需要,安装其他缺失的依赖
# 查看 opencv4 的依赖关系
.\vcpkg depend-info opencv4# 安装可能缺失的依赖
.\vcpkg install protobuf:x86-windows
.\vcpkg install eigen3:x86-windows
.\vcpkg install openexr:x86-windows
3.在运行后面之前最好先保证CMake 正常工作:
# CMakeLists.txt - 测试基本功能
cmake_minimum_required(VERSION 3.15)
project(TestProject)add_executable(TestProject main.cpp)
main.cpp
#include <iostream>
int main() {
std::cout << "CMake is working!" << std::endl;
std::cout << "Visual Studio 2019 toolchain is configured." << std::endl;
return 0;
}
运行:
D:\ProjectC\Dev\tools\CMake\bin\cmake.exe -B test_build -G "Visual Studio 16 2019" -A win32
4.然后添加 vcpkg 工具链:
# 使用 vcpkg 工具链
D:\ProjectC\Dev\tools\CMake\bin\cmake.exe -B build `
-DCMAKE_TOOLCHAIN_FILE="D:/ProjectC/Dev/tools/vcpkg/scripts/buildsystems/vcpkg.cmake" `
-G "Visual Studio 16 2019" `
-A win32
5.在确定基础CMake和vcpkg配置都没有问题。现在需要正确设置OpenCV的查找路径。
-
首先确认OpenCV配置文件的位置
# 检查vcpkg安装的OpenCV配置文件
dir "D:\ProjectC\Dev\tools\vcpkg\installed\x86-windows\share\opencv4\*.cmake" -
检查VCPKG_INSTALLED_DIR环境变量
# 检查VCPKG_INSTALLED_DIR是否存在
echo $env:VCPKG_INSTALLED_DIR# 如果没有,手动设置
$env:VCPKG_INSTALLED_DIR = "D:\ProjectC\Dev\tools\vcpkg\installed" -
创建一键配置脚本
创建configure_opencv.bat:@echo off setlocal echo Setting up environment... set PATH=D:\ProjectC\Dev\tools\CMake\bin;%PATH% set VCPKG_INSTALLED_DIR=D:\ProjectC\Dev\tools\vcpkg\installed echo Checking OpenCV configuration files... dir "D:\ProjectC\Dev\tools\vcpkg\installed\x86-windows\share\opencv4\*.cmake" echo Cleaning build directory... if exist build rmdir /s /q build echo Configuring with vcpkg... cmake -B build ^ -DCMAKE_TOOLCHAIN_FILE="D:/ProjectC/Dev/tools/vcpkg/scripts/buildsystems/vcpkg.cmake" ^ -DVCPKG_INSTALLED_DIR="D:/ProjectC/Dev/tools/vcpkg/installed" ^ -DOpenCV_ROOT="D:/ProjectC/Dev/tools/vcpkg/installed/x86-windows/share/opencv4" ^ -G "Visual Studio 16 2019" ^ -A win32 ^ -DCMAKE_BUILD_TYPE=Debug if %errorlevel% equ 0 ( echo. echo Configuration successful! echo. echo Building project... cmake --build build --config Debug if %errorlevel% equ 0 ( echo. echo Build successful! echo Executable: build\Debug\Project_1.exe ) ) else ( echo. echo Configuration failed! ) pause -
.\configure_opencv.bat 运行这个脚本
6.运行完没报红说明配置和构建成功了,不过可能会警告你OpenCV_ROOT 没有被项目使用,那很正常。
接下来就是需要用带opencv的代码运行试一下了
-
修改 CMakeLists.txt 来使用 OpenCV
cmake_minimum_required(VERSION 3.15) # 启用 CMP0074 策略,让 OpenCV_ROOT 生效 cmake_policy(SET CMP0074 NEW) # 注意:这里使用 TestProject 作为项目名(因为之前构建的是 TestProject.exe) project(TestProject) # 设置 OpenCV 路径 set(OpenCV_ROOT "D:/ProjectC/Dev/tools/vcpkg/installed/x86-windows/share/opencv4") # 查找 OpenCV 包 find_package(OpenCV REQUIRED) # 输出调试信息 message(STATUS "OpenCV found: ${OpenCV_FOUND}") message(STATUS "OpenCV version: ${OpenCV_VERSION}") # 添加可执行文件 add_executable(${PROJECT_NAME} main.cpp) # 链接 OpenCV 库 target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS}) # 包含 OpenCV 头文件目录 target_include_directories(${PROJECT_NAME} PRIVATE ${OpenCV_INCLUDE_DIRS}) -
更新 main.cpp 来使用 OpenCV
#include <opencv2/opencv.hpp> #include <iostream> int main() { std::cout << "OpenCV version: " << CV_VERSION << std::endl; // 创建一个简单的图像 cv::Mat image = cv::Mat::zeros(500, 500, CV_8UC3); // 画一个圆 cv::circle(image, cv::Point(250, 250), 100, cv::Scalar(0, 0, 255), 3); // 添加文本 cv::putText(image, "OpenCV Works!", cv::Point(150, 250), cv::FONT_HERSHEY_SIMPLEX, 1.0, cv::Scalar(255, 255, 255), 2); std::cout << "Image created: " << image.cols << "x" << image.rows << std::endl; // 显示图像 cv::imshow("OpenCV Test", image); cv::waitKey(0); return 0; } -
重新配置和构建
# 清理旧的构建 Remove-Item -Recurse -Force build -ErrorAction SilentlyContinue # 重新配置 .\configure_opencv.bat -
检查运行结果
运行生成的可执行文件:.\build\Debug\TestProject.exe你应该看到一个 OpenCV 窗口显示一个红色的圆圈和文字。看到就代表成功了。
更多推荐



所有评论(0)