opencv边缘提取画出边界面向c++
时间: 2024-07-16 18:01:32 浏览: 102
OpenCV(开源计算机视觉库)提供了一系列强大的功能,包括图像处理和分析。在C++中,如果你想从图片中提取边缘并画出边界,你可以使用其边缘检测算法,如Canny算子。以下是基本步骤:
1. **包含头文件**:
```cpp
#include <opencv2/opencv.hpp>
```
2. **读取图像**:
```cpp
cv::Mat img = cv::imread("your_image.jpg");
if (img.empty()) {
std::cerr << "Could not load image." << std::endl;
return;
}
```
3. **转换为灰度图像**:
```cpp
cv::Mat gray_img;
cv::cvtColor(img, gray_img, cv::COLOR_BGR2GRAY);
```
4. **应用Canny边缘检测**:
```cpp
cv::Mat edges;
cv::Canny(gray_img, edges, 50, 150); // 第一阈值(低阈值), 第二阈值(高阈值)
```
5. **绘制边缘**:
```cpp
cv::drawContours(img, edges, -1, Scalar(0, 0, 255), 2); // 绘制轮廓线,蓝色(0,0,255),线条宽度为2像素
```
6. **显示结果**:
```cpp
cv::imshow("Edges", img);
cv::waitKey();
```
记得替换`"your_image.jpg"`为你想要处理的图片路径。运行这段代码后,你会看到原始图像中边缘已经明显突出。