#include 文件 "D:/opencv/opencv/build/include/opencv2/highgui/highgui.hpp" 包含自身
时间: 2023-09-22 18:11:28 浏览: 187
是的,这个 #include 文件 "D:/opencv/opencv/build/include/opencv2/highgui/highgui.hpp" 包含了自身。具体来说,这个文件包含了一些与图形用户界面相关的函数和类的声明,其中可能会包含对同一个文件的其他部分的引用。因此,当编译器处理这个 #include 文件时,它会将整个文件的内容包含在当前文件中,从而使文件包含自身。这种情况下,通常会使用预处理器指令 #ifndef 和 #define 来避免文件被重复包含。
相关问题
fatal error: opencv2/dnn/dnn.hpp: 没有那个文件或目录 #include <opencv2/dnn/dnn.hpp> ^~~~~~~~~~~~~~~~~~~~~ compilation terminated.
这个错误提示说明编译器无法找到 OpenCV 的 dnn 模块,可能是因为你的编译器没有正确配置或者 OpenCV 没有正确安装。你可以尝试以下方法解决问题:
1. 确认你已经正确安装了 OpenCV,并且添加了 OpenCV 的 include 和 lib 路径到编译器的搜索路径中。
2. 如果你使用的是 CMake 进行编译,可以在 CMakeLists.txt 文件中添加以下语句来链接 OpenCV:
```
find_package(OpenCV REQUIRED)
target_link_libraries(your_project_name ${OpenCV_LIBS})
```
如果你使用的是 Makefile 进行编译,可以在编译命令中添加以下链接参数:
```
-lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_dnn
```
3. 如果你使用的是 Anaconda 或者其他虚拟环境,需要确认你已经在正确的环境中安装了 OpenCV。
如果以上方法都无法解决问题,建议检查一下你的代码和环境是否与 OpenCV 版本兼容,并且尝试重新安装 OpenCV。
#pragma once #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include<iostream> #include<vector> using namespace std; using namespace cv; // Lớp chứa các blob class Blob { public: int xmax, xmin, ymax, ymin, xcenter, ycenter; vector<Point> region; int width, height; int size; bool isInBlob(Point a) { if (a.x >= xmin - 2 && a.x <= xmax + 2 && a.y >= ymin - 2 && a.y <= ymax + 2) return true; return false; } void Add(Point a) { region.push_back(a); xmax = max(a.x, xmax); xmin = min(a.x, xmin); ymin = min(a.y, ymin); ymax = max(a.y, ymax); xcenter = (xmax + xmin) / 2; ycenter = (ymax + ymin) / 2; size = (xmax - xmin) * (ymax - ymin); width = xmax - xmin; height = ymax - ymin; } Blob() { xmax = ymax = xcenter = ycenter = size = 0; width = height = 0; xmin = ymin = INT_MAX; } ~Blob() {} };
这段代码定义了一个名为 Blob 的类,用于存储图像中的 blob 区域的信息。Blob 类包含以下属性:
- xmax、xmin、ymax、ymin:blob 区域的最大/最小坐标值,用于计算 blob 区域的宽度和高度。
- xcenter、ycenter:blob 区域的中心点坐标。
- region:存储 blob 区域中的所有像素点坐标。
- width、height:blob 区域的宽度和高度。
- size:blob 区域的大小。
- Add(Point a):将一个像素点添加到 blob 区域中。
- isInBlob(Point a):判断一个像素点是否在 blob 区域中。
在实际使用中,可以使用该类来实现图像中的目标检测、分割等任务。
阅读全文