• c++学习从小白到高级工程师实战02:opencv的活学活用


    目录

            环境安装

            Chapter 1:摄像头视频流读图

    本章开始c++、opencv的入门学习,干活满满。

    环境安装

    首先在网上搜索c++官网安装社区版Visual Studio

     安装完成之后点击c++桌面开发进行下一步

     然后在opencv官网下载opencv

    传送门

     选择合适版本下载即可。

     然后在系统环境变量中加入opencv的路径,D:\opencv\build\x64\vc15\bin

     然后我们可以打开VS软件进行项目创建

     

     Debug x64

    然后在项目属性中配置opencv路径

    在其中找到VC++ 目录 点击包含目录 编辑添加路径 D:\opencv\build\include 

     然后在VC++ 目录 点击引用目录 编辑添加路径 D:\opencv\build\x64\vc15\lib

     然后在链接器中,附加依赖项中编辑加入名称,opencv_world455d.lib(根据自己下载的opencv版本调整)一般是vs15文件夹下的opencv_world455d.dll后缀名dll变为lib

     完成c++的opencv环境配置

    如果运行出现报错的话,比如提示以下错误

    严重性    代码    说明    项目    文件    行    禁止显示状态
    错误    LNK1104    无法打开文件“opencv_world455d.lib”    02opencv学习    D:\csdn\c++\02opencv学习\02opencv学习\LINK    1    

    我们可以在链接器,常规中添加附加库目录,路径D:\opencv\build\x64\vc15\lib

    然后用个测试代码进行测试看能否运行,在解决方案资源管理器中,点击源文件,添加新建项,

     

    输入以下demo进行测试:

    1. #include<opencv2/imgcodecs.hpp>
    2. #include<opencv2/highgui.hpp>
    3. #include<opencv2/imgproc.hpp>
    4. #include<iostream>
    5. using namespace cv;
    6. using namespace std;
    7. int main() {
    8. string path = "Resources/test.png";
    9. Mat img = imread(path);
    10. imshow("Image", img);
    11. waitKey(0);
    12. return 0;
    13. }

    然后图片文件夹让在代码同一目录下

    最后运行成功

      

    Chapter 1:摄像头视频流读图

    1. #include<opencv2/imgcodecs.hpp>
    2. #include<opencv2/highgui.hpp>
    3. #include<opencv2/imgproc.hpp>
    4. #include<iostream>
    5. using namespace std;
    6. using namespace cv;
    7. /// <summary>
    8. /// Images
    9. /// </summary>
    10. //void main() {
    11. // string path = "Resources/test.png";
    12. // Mat img=imread(path);//matrix data type 由opencv引入来处理图像
    13. // imshow("Image", img);
    14. // waitKey(0);//增加延时,0表示无穷
    15. //}
    16. /// <summary>
    17. /// Video
    18. /// //视频是一系列图像,需要遍历所有图像或帧 一一捕获并显示,因此将使用while循环
    19. /// </summary>
    20. //void main() {
    21. // string path = "Resources/test_video.mp4";
    22. // VideoCapture cap(path);
    23. // Mat img;
    24. //
    25. // while (true) {
    26. // cap.read(img);
    27. // imshow("Image", img);
    28. // waitKey(20);//增加延时 20ms
    29. // }
    30. //
    31. //}
    32. /// <summary>
    33. /// Webcam
    34. /// 与导入视频不同的是,不需要视频路径,只需要给相机ID,id=0表示默认的摄像头
    35. /// </summary>
    36. void main() {
    37. VideoCapture cap(0);//相机id=0
    38. Mat img;
    39. while (true) {
    40. cap.read(img);
    41. imshow("Image", img);
    42. waitKey(1);//增加延时 1ms,以免太慢
    43. }
    44. }

     

     

  • 相关阅读:
    后端统一处理返回前端日期LocalDateTime格式化去T,Long返回前端损失精度问题
    .NET C#基础(7):接口 - 人如何和猫互动
    武汉ITSS运维服务认证价值
    每天五分钟深度学习:解决for循环效率慢的关键在于向量化
    react笔记_04jsx语法学习
    2.6文件服务器
    Ansible自动化运维工具
    matlab使用移动平均滤波器、重采样和Hampel过滤器进行信号平滑处理
    关于Oracle数据库审计、诊断文件及跟踪文件操作
    圆周率介绍
  • 原文地址:https://blog.csdn.net/qq_34904125/article/details/125493653