创作不易,您的打赏、关注、点赞、收藏和转发是我坚持下去的动力!
原因分析
根据错误提示,主要问题集中在以下几点:
-
头文件路径错误:
- 错误信息
E1696 无法打开源文件 "opencv2/opencv_modules.hpp"
和E1696 无法打开源文件 "opencv2/core.hpp"
表示 Visual Studio 找不到 OpenCV 头文件,说明你的 OpenCV 库路径设置有问题。 - 代码中使用了绝对路径
#include <D:\\opencv\\opencv\\sources\\include\\opencv2\\opencv.hpp>
,这不是一种标准的头文件包含方式,容易导致错误。
- 错误信息
-
命名空间和类引用错误:
- 错误提示
E0276
和E0020
表示在使用 OpenCV 命名空间和类时发生了错误。这通常是因为 OpenCV 头文件没有正确包含或 OpenCV 库没有正确链接导致的。
- 错误提示
-
未正确配置 OpenCV 库路径:
- 错误提示
C1083 无法打开包括文件: "opencv2/opencv_modules.hpp": No such file or directory
表明 OpenCV 的包含目录没有正确添加到 Visual Studio 的项目属性中。
- 错误提示
解决方案
按照以下步骤逐一排查并解决这些问题:
1. 修改头文件包含方式
- 不要使用绝对路径来包含 OpenCV 头文件。应使用标准的相对路径来引用 OpenCV 的头文件,如:
#include <opencv2/opencv.hpp>
- 确保在项目属性中正确配置了 OpenCV 的包含目录和库目录(下一步会详细说明)。
2. 配置 Visual Studio 项目属性
- 右键单击你的项目,选择“属性”。
- 配置 OpenCV 头文件和库文件路径:
- 在 “C/C++ -> 常规 -> 附加包含目录” 中,添加 OpenCV 的
include
文件夹路径,例如:D:\opencv\build\install\include
- 在 “链接器 -> 常规 -> 附加库目录” 中,添加 OpenCV 的库文件夹路径,例如:
D:\opencv\build\install\x64\vc16\lib
- 在 “C/C++ -> 常规 -> 附加包含目录” 中,添加 OpenCV 的
- 添加 OpenCV 库文件:
- 在 “链接器 -> 输入 -> 附加依赖项” 中,添加 OpenCV 的库文件,例如:
opencv_world460.lib // 根据你安装的 OpenCV 版本号填写
- 在 “链接器 -> 输入 -> 附加依赖项” 中,添加 OpenCV 的库文件,例如:
- 注意:确保 OpenCV 的安装路径和版本与你实际安装的路径和版本一致。
3. 修改代码并验证
修改后的代码如下:
#include <opencv2/opencv.hpp>
#include <iostream>
int main() {
cv::Mat image = cv::imread("C:\\Users\\Pictures\\Saved Pictures\\opencv1.png");
if (image.empty()) {
std::cout << "Could not open or find the image!" << std::endl;
return -1;
}
cv::imshow("Display window", image);
cv::waitKey(0);
return 0;
}
4. 检查 OpenCV 环境变量
- 确保已经将 OpenCV 的
bin
文件夹路径添加到系统环境变量Path
中。例如,将以下路径添加到Path
:D:\opencv\build\install\x64\vc16\bin
5. 重新编译项目
- 配置完成后,重新编译你的项目。如果所有设置正确,错误应该会消失,并且能够正确执行程序,显示图像。
注意事项
- 配置 Visual Studio 项目属性时,路径应根据你实际安装 OpenCV 的位置进行调整。
- 如果安装的是其他版本的 OpenCV(例如
4.5.0
),请根据实际情况更改路径和库文件名称。