opencv 几何图形检测边框 C++实例
时间: 2024-09-12 19:02:22 浏览: 49
在OpenCV中,几何图形检测边框通常涉及边缘检测算法,如Canny算子或Hough变换。这里是一个简单的例子,展示如何使用Canny边缘检测法来检测图像中的边界:
```cpp
#include <opencv2/opencv.hpp>
int main() {
// 读取图片
cv::Mat img = cv::imread("path_to_your_image.jpg", cv::IMREAD_GRAYSCALE);
// 确保图像已读取成功
if (img.empty()) {
std::cout << "Could not read the image." << std::endl;
return -1;
}
// Canny边缘检测
cv::Mat edges;
cv::Canny(img, edges, 50, 150); // 第二个参数是低阈值,第三个是高阈值
// 转换为彩色以便于查看
cv::Mat coloredEdges;
cv::cvtColor(edges, coloredEdges, cv::COLOR_GRAY2BGR);
// 显示原始图和检测到的边界
cv::namedWindow("Original Image", cv::WINDOW_NORMAL);
cv::imshow("Original Image", img);
cv::namedWindow("Edge Detection", cv::WINDOW_NORMAL);
cv::imshow("Edge Detection", coloredEdges);
// 等待按键输入,然后关闭窗口
cv::waitKey(0);
cv::destroyAllWindows();
return 0;
}
```
在这个示例中,`cv::Canny()`函数用于边缘检测,返回一个新的矩阵`edges`,其中像素值表示强度。通过将结果转换回彩色图像,我们可以更直观地看到边缘。
阅读全文