【问题标题】:Finding the edges of a partial ellipse in an image在图像中查找部分椭圆的边缘
【发布时间】:2015-12-12 09:21:42
【问题描述】:

我有一个如下图所示的二值图像。

如图所示,有一条看起来像椭圆弧的边缘,如下图所示,我手动将其标记为红色。这些红色像素应该是被代码找到的。

我的目标是为上图中红色的像素拟合一个椭圆。这个拟合的椭圆如下所示。

有人可以告诉我如何使用 MATLAB 获取第二张图像中标记为红色的像素吗?然后我将它们用于椭圆拟合。

【问题讨论】:

    标签: matlab image-processing edge-detection


    【解决方案1】:

    您所描述的问题非常重要。 This article 描述了一些现有的方法。这很好,因为它是一项可以将您指向其他文章的调查。

    正如您可能已经猜到的那样,没有椭圆的两端可以使用会使事情变得无限复杂。如果不是这种情况,您可以使用霍夫变换。 mathworks 网站上已有 a script 可用,请执行此操作。

    话虽如此,我推荐谷歌搜索“椭圆检测”。它可能对 MATLAB 实现没有直接帮助,但至少可以让您了解您要解决的问题的严重程度。

    【讨论】:

    • +1 用于使用 Hough。但我会从计算骨架开始,再加上一个小修剪。它会使结果更稳定。
    • @Mad Physicist:您提供链接的 MATLAB 脚本运行良好。我根据我的图像使用params.minMajorAxisparams.maxMajorAxis,它能够检测到椭圆。诀窍是将我的图像的翻转版本添加到原始图像中,以便为代码提供更多信息。 c = imread('myellipseimage.jpg');c2 = [c;flipud(c)];。这样,它保持椭圆关于水平轴的对称性。很棒的帮助。非常感谢。
    • 没问题。我花了 45 秒的谷歌搜索来写这个答案。
    猜你喜欢
    • 2020-07-08
    • 1970-01-01
    • 2022-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 1970-01-01
    相关资源
    最近更新 更多