霍夫圆检测python 不调用opencv
时间: 2023-09-30 09:10:55 浏览: 45
如果你不想使用 OpenCV,可以使用其他库来实现霍夫圆检测。以下是一个使用 Scikit-image 库实现霍夫圆检测的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
from skimage import data, color
from skimage.transform import hough_circle
from skimage.feature import peak_local_max
from skimage.draw import circle_perimeter
# 读取图像
image = color.rgb2gray(data.coins())
# 定义半径范围
radii = np.arange(20, 35)
# 进行霍夫圆检测
hough_res = hough_circle(image, radii)
# 寻找圆心
accums, cx, cy, radii = peak_local_max(hough_res, num_peaks=1, threshold_rel=0.5, exclude_border=False)
# 绘制结果
fig, ax = plt.subplots()
ax.imshow(image, cmap=plt.cm.gray)
for center_y, center_x, radius in zip(cy, cx, radii):
circy, circx = circle_perimeter(center_y, center_x, radius, shape=image.shape)
ax.plot(circx, circy, 'r', linewidth=2)
plt.show()
```
这个代码使用 Scikit-image 库中的 `hough_circle` 函数进行霍夫圆检测,并使用 `peak_local_max` 函数寻找圆心。最后,使用 `circle_perimeter` 函数绘制检测出的圆。