OPENcv检测圆环,返回打印圆环的中心位置
时间: 2024-10-24 20:08:39 浏览: 17
基于C++OpenCV实现的直线检测、圆检测.zip
5星 · 资源好评率100%
OpenCV(Open Source Computer Vision Library,开源计算机视觉库)是一个强大的图像处理库,常用于各种计算机视觉任务,包括圆环检测。在OpenCV中,可以使用`HoughCircles`函数来检测图像中的圆形结构,这个函数基于霍夫变换来寻找圆形边缘。
```python
import cv2
import numpy as np
# 加载图像
img = cv2.imread('image.jpg')
# 将图像转换为灰度
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 使用HoughCircles检测圆环
circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, dp=1, minDist=200, param1=50, param2=30, minRadius=0, maxRadius=0)
# 如果有检测到圆环
if circles is not None:
# 取出圆环的中心坐标
centers = np.round(circles[0, :, :]).astype("int")
# 打印或画出圆环中心的位置
for center in centers:
print(f"圆环中心位置: ({center[0][0]}, {center[0][1]})")
cv2.circle(img, (center[0][0], center[0][1]), 2, (0, 0, 255), 2) # 在原图上标记圆心
else:
print("未检测到圆环")
# 显示结果
cv2.imshow("Image with detected circles", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码首先加载图片,然后进行灰度化处理,接着应用霍夫变换找圆环。如果找到圆环,它将打印并标记每个圆环的中心点。如果没有检测到圆环,会提示无圆环。
阅读全文