C++视觉开发 一.OpenCV环境配置

一.OpenCV安装环境配置

1.OpenCV安装

(1)下载

官方下载链接:http://opencv.org/releases

这边选择需要的版本,我是在windows下的4.9.0。(科学上网下载很快,否则可能会有点慢)

(2)安装

双击下载好的exe文件,选择安装路径,最好是英文路径。

2.环境变量配置

(1)复制你的安装目录下的该文件的路径:

E:\download_tool\opencv4\opencv\build\x64\vc16\bin

如果又vc15或者vc14就选择更高的版本就行。

右键点击此电脑,依次选择属性->高级系统设置->环境变量->Path

将刚刚复制的目路径添加到环境变量,点击确定保存

到这里系统的环境变量配置完成,接下来配置编译器的环境

二.配置开发环境

我使用的是VS2022,打开创建一个C++工作台

(1)点击右侧解决方案资源管理器

(2)右键点击创建的项目,选择属性。

可以打开如图界面。

1.包含目录

点击VC++ 目录

找到OpenCV安装的include路径,复制添加进包含目录,如图:

2.库目录

继续找到OpenCV安装的lib路径,复制添加进库目录,如图:

3.附加依赖项

继续找到OpenCV安装的lib路径下的.lib文件

注意:这里需要参考你的编译器模式。如果用的Debug就复制第一个,如果用的Release就复制第二个(后缀有d)。

复制添加进库目录,如图:

到此为止所有的环境配置完成,不过只能在该项目下使用。

所以我们需要输出一个模板,以便于创建新项目时可以直接使用该环境,不用重新配置。

三.模板输出

1.模板创建

点击项目->导出模板,然后自己取个名字,后面创建新项目时可以直接选择该模板。

2.测试代码

首先放入一张图片,我这里放入的名字叫lenacolor.png

cpp 复制代码
#include <opencv2/opencv.hpp>
#include <iostream>

int main() {
     //读取图像
    cv::Mat lena = cv::imread("lenacolor.png");

    // 检查图像是否加载成功
    if (lena.empty()) {
        std::cerr << "Error: Could not open or find the image" << std::endl;
        return -1;
    }

     //打印图像矩阵数据
    std::cout << "Lena Image Matrix: " << std::endl;
    std::cout << lena << std::endl;

    //输出图像
    cv::imshow("demo1", lena);
    cv::imshow("demo2", lena);
    cv::waitKey(0);
    cv::destroyAllWindows();
}

如果能正常输出图像和数据,表明配置成功。如报错请检查上述操作是否有路径错误。

后面的动态库未正确安装警告提示可以暂时不用管。

相关推荐
David猪大卫3 小时前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
HPtiger3 小时前
C++ 入门笔记:从 C 到 C++ 的核心过渡(命名空间、输入输出、缺省参数、重载、引用、内联)
c语言·c++·学习
fengci.4 小时前
CTF2MISC中等部分
开发语言·前端·学习
xys_6785 小时前
JavaEE通关手册:初识Java
java·开发语言
硅谷秋水6 小时前
PhysicalWords:一种用于构建机器人操作中潜推理过程的词汇体系
人工智能·机器学习·计算机视觉·语言模型·机器人
努力努力再努力wz6 小时前
【Lua 进阶系列】从 C++ 对象到 Lua 变量:一文理解 userdata、Lua 栈与元表绑定机制
c++·junit·lua
慧都产品智能化6 小时前
Qt 表格升级攻略:复用已有编辑器,减少重复开发
c++·qt·编辑器·qt6.3
ShineWinsu6 小时前
对于Qt:QTableWidget常见属性以及QTableWidgetItem类的解析
开发语言·c++·qt·gui·客户端·表格·qtablewidget
ShineWinsu8 小时前
对于Qt:QListWidget常见属性以及QListWidgetItem类的解析
开发语言·c++·qt·客户端·列表·qlistwidget·qlistwidgetitem
坤坤子吖8 小时前
Linux网络编程:自定义应用层协议与 JSON 序列化
linux·服务器·网络·c++·笔记·json