Python采用霍夫椭圆变换检测图片中的椭圆物体
来源:网络收集 点击: 时间:2024-01-30打开IDLE软件,并且载入先关的函数库。
import matplotlib.pyplot as plt
from skimage import data,draw,color,transform,feature

读取图片,并对图片进行相应的剪切,且需要进行灰度化处理。这读取的是skimage库内的文件。
image_rgb = data.coffee()
image_gray = color.rgb2gray(image_rgb)

在灰度图的基础上,进行边缘检测,代码如下。
edges = feature.canny(image_gray, sigma=2.0, low_threshold=0.55, high_threshold=0.8)

对边缘图像进行霍夫椭圆变换处理,代码如下,执行比较费时间。
result =transform.hough_ellipse(edges, accuracy=20, threshold=250,min_size=100, max_size=120)
result.sort(order=accumulator)

获取我们的处理得到的椭圆。
best = list(result)
yc, xc, a, b = ]
orientation = best

查看效果,采用以下代码,在原图上画出我们检测得到的椭圆。
cy, cx =draw.ellipse_perimeter(yc, xc, a, b, orientation)
image_rgb = (0, 0, 255)
plt.imshow(image_rgb)
plt.show()

我们检测的结果如下。

如有疑问可以留言
这里没有给出具体的理论推导,仅仅给出了具体的实现方法
PYTHON图像处理霍夫变换霍夫椭圆变换椭圆检测版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.ff371.cn/art_9808.html