从零到一:在Win10与Visual Studio 2022中部署OpenCV 4.8.0全攻略
1. 环境准备下载与安装OpenCV 4.8.0OpenCV作为计算机视觉领域的瑞士军刀安装过程其实比你想象中简单。我最近刚在Win10上配过最新版4.8.0实测比旧版本更稳定。首先打开OpenCV官网直接搜OpenCV GitHub第一个就是找到4.8.0版本的Windows包下载。这里有个小技巧国内用户可能会遇到下载慢的问题建议早上8点前下载速度最快。下载完成后你会得到一个exe文件别被吓到——它其实是个自解压压缩包。双击运行后建议解压到C盘根目录比如C:\opencv4.8.0。为什么推荐C盘因为后续配置路径时不容易出现权限问题而且VS2022默认安装位置也在C盘路径中不会出现中文或空格这种容易引发玄学问题的字符。解压完成后你会看到build和sources两个文件夹。build里是我们需要的库文件sources则是源码和样例——建议保留以后想研究算法实现时会用得上。现在打开build\x64目录会发现vc15和vc16两个文件夹。这里要特别注意VS2022对应的是vc16千万别选错否则后面会报各种找不到dll的错误。2. 系统环境变量配置配置环境变量就像给系统装GPS告诉它去哪找OpenCV的库文件。我见过很多新手在这一步翻车其实关键就两点路径要绝对版本要匹配。右键此电脑→属性→高级系统设置→环境变量在系统变量的Path里新建两条记录C:\opencv4.8.0\build\x64\vc16\bin C:\opencv4.8.0\build\x64\vc16\lib注意斜杠方向——Windows既接受反斜杠也接受正斜杠但建议统一用反斜杠。添加完成后一定要点确定保存而不是直接关闭窗口我有次忘了点确定排查了半天才发现问题。验证是否成功WinR输入cmd打开命令提示符输入where opencv_world480.dll如果显示路径正确说明环境变量生效了。这里有个坑OpenCV 4.8.0的dll文件名后缀是480而旧版可能是455写代码时千万别搞混。3. Visual Studio 2022项目配置VS2022的配置比2019更智能但OpenCV需要手动设置属性表。我推荐用属性表而不是直接改项目属性——一次配置终身受用。首先新建一个空项目建议取名OpenCV_Test然后在解决方案资源管理器右键项目→添加→新建项→属性表。创建两个OpenCV_Debug和OpenCV_Release。Debug版用于开发调试Release版用于最终发布。配置包含目录Include DirectoriesC:\opencv4.8.0\build\include C:\opencv4.8.0\build\include\opencv2库目录Library DirectoriesC:\opencv4.8.0\build\x64\vc16\lib附加依赖项Additional DependenciesDebug模式填opencv_world480d.libRelease模式填opencv_world480.lib这里有个血泪教训Debug版必须带d后缀我有次忘记加d调试时各种内存错误差点重装系统。配置完成后记得保存属性表以后新建项目时直接添加现有属性表就行。4. 测试与常见问题排查用这段代码测试是否配置成功#include opencv2/opencv.hpp #include iostream int main() { cv::Mat img cv::imread(C:/test.jpg); if(img.empty()) { std::cout 图片加载失败请检查 std::endl; std::cout 1. 文件路径是否正确建议使用绝对路径 std::endl; std::cout 2. 文件名后缀是否显示完整.jpg/.png std::endl; return -1; } cv::imshow(测试窗口, img); cv::waitKey(0); return 0; }常见翻车现场及解决方案图片加载失败首先检查资源管理器是否显示文件扩展名。Win10默认隐藏扩展名可能导致你实际输入的是test.jpg.jpg一堆INFO日志在main函数开头添加cv::utils::logging::setLogLevel(cv::utils::logging::LOG_LEVEL_SILENT);找不到dll检查环境变量是否包含vc16的bin目录以及是否重启了VS2022如果测试成功恭喜你接下来可以试试更复杂的功能比如摄像头采集cv::VideoCapture cap(0); if(!cap.isOpened()) { std::cerr 摄像头打不开 std::endl; return -1; } while(true) { cv::Mat frame; cap frame; cv::imshow(实时画面, frame); if(cv::waitKey(30) 27) break; //按ESC退出 }配置过程中最头疼的往往是路径问题。建议所有路径都用绝对路径等完全跑通后再考虑相对路径。另外OpenCV 4.8.0对C17支持更好可以在项目属性→C/C→语言里把C语言标准改为ISO C17标准。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2532361.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!