cv2.HoughCircles限制识别到的圆的数量,以及画出圆心,画粗一点
时间: 2024-09-20 07:08:23 浏览: 42
霍夫圆变换实现对虹膜内外圆的检测与识别(python+opencv)
5星 · 资源好评率100%
在OpenCV的`cv2.HoughCircles`函数中,可以通过一些参数控制检测到圆的数量。如果你想减少噪音并只保留较大的圆,可以调整以下几个关键参数:
1. **minRadius**: 设置最小的圆半径阈值。如果检测到的圆小于这个值,就会被忽略。
2. **maxRadius**: 设置最大的圆半径阈值。超过这个值的圆也不会被检测出来。
例如,如果你想要限制返回的圆的数量,并且希望圆更明显一些,你可以这样做:
```cpp
int minRadius = 30;
int maxRadius = 100;
std::vector<cv::Vec3f> circles;
cv::HoughCircles(image, circles, cv::HOUGH_GRADIENT, 1, image.rows/8, maxRadius, minRadius, 0, 0);
// 画出圆心和更大直径的圆
for (size_t i = 0; i < circles.size(); i++) {
cv::Point center(cvRound(circles[i][0]), cvRound(circles[i][1]));
int radius = cvRound(circles[i][2]);
if (radius >= minRadius && radius <= maxRadius) { // 只画满足条件的圆
cv::circle(image, center, radius + 5, cv::Scalar(0, 0, 255), 3); // 提高线宽至3像素,使其更显眼
}
}
```
在这里,`+5`是增加的额外像素,使得画出的圆圈边缘更粗大。
阅读全文