使用python检测图像中的类似于圆形的图像并拟合为圆形并标记圆心位置
时间: 2023-12-14 08:38:11 浏览: 111
找图像圆心
5星 · 资源好评率100%
要检测图像中的圆形并标记圆心位置,可以使用OpenCV库。以下是实现该功能的Python代码示例:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('image.png')
# 转为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 高斯滤波
blur = cv2.GaussianBlur(gray, (5, 5), 0)
# 霍夫圆变换检测圆
circles = cv2.HoughCircles(blur, cv2.HOUGH_GRADIENT, 1, 100,
param1=100, param2=30, minRadius=0, maxRadius=0)
# 绘制圆和标记圆心
if circles is not None:
circles = np.round(circles[0, :]).astype("int")
for (x, y, r) in circles:
cv2.circle(img, (x, y), r, (0, 255, 0), 2)
cv2.circle(img, (x, y), 2, (0, 0, 255), 3)
# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在该代码中,首先读取图像并将其转为灰度图像,然后应用高斯滤波。接下来使用霍夫圆变换检测图像中的圆,并绘制圆和标记圆心。最后显示图像。
注意,该方法可能对于不完全圆形的图像会产生误检测。如果需要检测其他形状的图像,可以使用其他形状检测算法,例如矩形检测或轮廓检测。
阅读全文