opencv python 如何获取识别到的圆心及半径
时间: 2023-11-13 19:04:18 浏览: 185
opencv 识别圆心
5星 · 资源好评率100%
要获取识别到的圆的圆心及半径,你可以使用OpenCV中的Hough圆检测算法。使用Hough圆检测算法可以在图像中检测出圆形物体,并且获取这些圆形物体的圆心坐标和半径信息。
下面是一个示例代码,演示了如何使用OpenCV的Hough圆检测算法来检测圆形物体:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('circles.jpg')
# 灰度化和高斯滤波
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = cv2.GaussianBlur(gray, (5, 5), 0)
# Hough圆检测
circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1, 20, param1=50, param2=30, minRadius=0, maxRadius=0)
# 提取圆心坐标和半径信息
circles = np.uint16(np.around(circles))
for i in circles[0, :]:
# 画出圆心
cv2.circle(img, (i[0], i[1]), 2, (0, 255, 0), 3)
# 画出圆形边界
cv2.circle(img, (i[0], i[1]), i[2], (0, 0, 255), 2)
# 输出圆心和半径信息
print('圆心坐标为:({},{}),半径为:{}'.format(i[0], i[1], i[2]))
# 显示结果
cv2.imshow('circles', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这里,我们使用了cv2.HoughCircles()函数来检测图像中的圆形物体,函数返回的是一个包含圆心坐标和半径信息的数组。我们可以通过循环遍历这个数组,提取出每个圆的圆心坐标和半径信息,并且在图像上用圆形标出来。同时,我们还可以输出每个圆的圆心坐标和半径信息。
阅读全文