【问题标题】:Detect simple curves and lines in the grayscale image检测灰度图像中的简单曲线和线条
【发布时间】:2014-06-16 11:15:56
【问题描述】:

我有一张由宽度约为 8-10 像素的线绘制的简单灰度原始几何图形(曲线、“锯齿”线、椭圆、三角形、星形)的图像。

如何对图像进行统计分析?我至少需要以下两个参数:

  1. 锐角数
  2. 曲线数。

我自己尝试过提取轮廓,缩小直到它们的边缘连接(即变成曲线)并通过微分函数分析它们,但是对于大图像需要太多时间。

假设有某种曲线/角度/角度锐度检测算法?

我需要的是一个开源框架(最好是 java/javascript)来做这些事情,或者至少是一个算法名称来检测曲线/“锯”线。

【问题讨论】:

  • @Cerbrurs,我作为 Java/JavaEE 和 Web 开发人员 (js/typescript) 拥有 10 年的专业经验,并且使用这两种语言。不要假设如果人们将“java/javascript”放在一行文本中,他就不知道它们之间的区别:)。我在这里提到这些语言只是为了明确我正在寻找什么 3rd 方框架。如果是 javascript,我会使用 node.js 来处理图像,如果是 java,我会使用 jetty/tomcat,这并不重要。我需要的只是数学方法。
  • 啊,我明白了 :-) 在那种情况下,除了向你扔“边缘检测”这个词外,恐怕我根本帮不了你。图像处理根本不是我的强项;-)
  • Hough Transform 可能适用于您的某些形状。 (至少是直线和椭圆)
  • 你能发布一个示例图片吗?
  • Harris 角检测器可用于查找尖角。但是不同的方法适合不同类型的图像结构。例如,一个重要的选择是是否更方便首先识别斑点、边缘或角落……这实际上取决于图像的结构。所以我同意维克多·梅的观点。

标签: java javascript math image-processing image-recognition


【解决方案1】:

Hough transform 可能有助于您识别曲线。如果您只需要计数,它应该可以正常工作。它可以推广到检测可以使用参数描述的任何几何形状,或者使用模板匹配来检测任何形状。不过,也可以是expensive

对于尖角,您可以使用@Diego 在上述评论中提到的Harris corner detection

当然还要查看jfeaturelib,它有助于从图像中提取特征(尽管如果您只是想计算/检测它们,对于您的目的来说可能有点繁重)。

以下是一些可能对您有所帮助的实现:

您可能还想查看 NIH 的 ImageJ,有很多 Java 插件可能对您有所帮助。许多生物学家(比如我!)使用它来检测图像特征,并且有数百个插件可用于几乎任何可以想象的目的。

TherearealsomanyhelpfulquestionsonSO

【讨论】:

    猜你喜欢
    • 2020-03-07
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-23
    • 2017-07-14
    • 2019-10-28
    相关资源
    最近更新 更多