opencv二值化后返回白色点坐标 C++
时间: 2024-09-06 09:02:22 浏览: 45
Globe0_opencv_画球_C++_
在OpenCV中,二值化通常用于图像处理中的边缘检测或目标分割,将图像转换成只有黑和白两个通道。如果你想要获取二值化后的白色像素(即原图中的目标区域)的坐标,可以按照以下步骤操作:
1. 使用`cv::threshold()`函数对图像进行阈值处理,将其转换为二值图像。例如:
```cpp
cv::Mat src, binary;
cv::threshold(src, binary, threshold_value, 255, cv::THRESH_BINARY);
```
这里,`src`是输入图像,`binary`是二值化结果,`threshold_value`是阈值。
2. 接下来,你可以使用`findContours()`函数寻找轮廓,然后遍历轮廓找出内部的白色像素点:
```cpp
std::vector<std::vector<cv::Point>> contours;
cv::findContours(binary, contours, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_SIMPLE);
for (const auto& contour : contours) {
for (size_t i = 0; i < contour.size(); ++i) {
cv::Point point = contour[i];
if (binary.at<uchar>(point.y, point.x) == 255) { // 255代表白色
std::cout << "Pixel at (" << point.x << ", " << point.y << ") is white." << std::endl;
}
}
}
```
这里,我们检查每个轮廓点是否为白色,并打印出坐标。
阅读全文