opencv:无法打开源文件“opencv2/opencv.hpp(VS2019)

在一个项目中遇到无法打开源文件"opencv2/opencv.hpp。在此写一个简单直白的帖子记录解决过程。

1、首先,看一下自己的电脑有没有下载opencv包,如果没有,请下载一个opencv,网址如下:

Releases - OpenCV

下载合适的window版本,然后解压得到如下文件夹,建议放在D盘:

2、配置系统环境变量

右键此电脑—>属性—>高级系统设置—>环境变量,找到Path变量,选中并点击编辑

然后点击新建,找到刚刚下载的opencv文件夹,将两个bin文件加进去。然后确定,退出。

3、在VS中配置opencv

点击项目—>属性—>VC++目录—>包含目录—>编辑,(前提是已经新建了一个项目)。找到刚刚下载的opencv文件夹,将下面三个路径添加到包含目录,点击确定。

然后添加库目录,将下面的路径添加进去。然后点击确定

至此,问题解决。

### C++ OpenCV 使用教程及实例 #### 创建工程与基本配置 为了使用 OpenCV 库,在创建新的 C++ 工程之前,需先下载并安装 OpenCV。完成之后,要确保编译器能够找到头文件以及链接所需的库文件。对于大多数集成开发环境 (IDE),这涉及到设置包含路径和库路径。 在 `img_show.h` 文件中展示了如何引入必要的 OpenCV 头文件[^2]: ```cpp #pragma once #ifndef __IMG_SHOW__ #define __IMG_SHOW__ #include <iostream> #include <opencv2/opencv.hpp> namespace img_test { class test { public: int sum(int a, int b) { return a + b; } int aa = 10, bb = 15; private: int a, b; }; } #endif // ! ``` 此代码片段定义了一个简单的类 `test` 并包含了 OpenCV 的核心模块和其他常用组件的头文件。 #### 基本操作:显示图片 通过上述准备后,可以编写程序来加载一张图片,并利用窗口功能展示出来。以下是具体实现方式: ```cpp #include "img_show.h" int main() { using namespace cv; Mat image; image = imread("example.png", IMREAD_COLOR); // Read the file if (image.empty()) { // Check for invalid input std::cout << "Could not open or find the image" << std::endl; return -1; } namedWindow("Display window", WINDOW_AUTOSIZE); imshow("Display window", image); waitKey(0); // Wait indefinitely until key press event occurs. } ``` 这段代码实现了从磁盘读取图像文件的功能,并在一个名为 “Display window”的窗口内呈现该图像。如果找不到指定路径下的图像,则会打印错误消息并退出应用程序。 #### 几何变换:调整大小 除了基础的操作外,还可以应用各种几何转换到输入的数据上。例如,可以通过调用 `cv::resize()` 方法轻松地更改图像尺寸。下面给出了一段完整的例子用于说明这一点[^3]: ```cpp #include <opencv2/opencv.hpp> using namespace cv; int main() { Mat srcImg = imread("input.jpg"); double scaleFactor = 0.75; Size newSize(srcImg.cols * scaleFactor, srcImg.rows * scaleFactor); Mat dstImg; resize(srcImg, dstImg, newSize); imshow("Source Image", srcImg); imshow("Resized Image", dstImg); waitKey(); } ``` 这里演示了怎样按比例缩小给定的一张照片;用户可以根据实际需求修改参数以适应不同的应用场景。 #### 密集光流计算 最后介绍的是关于视频处理方面的一个重要概念—密集光流场估计。它可以帮助我们理解连续帧之间物体运动情况的变化趋势。下面是执行这一过程所需的关键步骤概述[^4]: ```cpp VideoCapture cap("video.mp4"); if (!cap.isOpened()) { printf("Cannot open video\n"); return -1; } Mat prevFrame, currFrame, flowField, hsvFlowMap, rgbFlowMap; for (;;) { cap >> prevFrame; if (prevFrame.empty()) break; cap >> currFrame; if (currFrame.empty()) continue; calcOpticalFlowFarneback(prevFrame, currFrame, flowField, 0.5, 3, 15, 3, 5, 1.2, 0); // Convert optical flow into HSV color space and then to RGB... } ``` 以上就是有关于C++环境下运用OpenCV的一些基础知识和技术要点。希望这些信息能帮助读者更好地理解和掌握这个强大的计算机视觉工具包!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值