opencv 图像分割代码c++
时间: 2023-07-24 11:15:34 浏览: 132
Visual C++数字图像处理技术详解(源代码).rar_vc++_vtk 分割_图像复原 opencv_图像算法_形态匹配
5星 · 资源好评率100%
以下是使用 OpenCV 进行图像分割的示例代码(C++):
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// 读取图像
Mat img = imread("image.jpg");
// 转换为灰度图像
Mat gray;
cvtColor(img, gray, COLOR_BGR2GRAY);
// 进行阈值分割
Mat thresh;
threshold(gray, thresh, 127, 255, THRESH_BINARY);
// 显示分割结果
imshow("Threshold", thresh);
waitKey(0);
destroyAllWindows();
return 0;
}
```
与 Python 代码类似,我们首先使用 `imread()` 函数读取一张图像,然后使用 `cvtColor()` 函数将其转换为灰度图像。
接着,我们使用 `threshold()` 函数进行阈值分割。该函数接受以下参数:
- `src`: 要处理的图像。
- `dst`: 存储分割结果的图像。
- `thresh`: 阈值。
- `maxval`: 当像素值大于阈值时要赋予的值。
- `type`: 分割类型。
在本例中,我们使用 `THRESH_BINARY` 类型进行分割,即当像素值大于阈值时,将其赋值为 `maxval`,否则赋值为 0。
最后,我们使用 `imshow()` 函数显示分割结果。注意,使用该函数前需要先调用 `waitKey()` 函数等待用户按下按键,否则窗口会闪退。使用 `destroyAllWindows()` 函数关闭所有窗口。
阅读全文