【问题标题】:How to create a convex hull of all binary spots in ImageJ如何在 ImageJ 中创建所有二进制点的凸包
【发布时间】:2018-08-14 15:14:41
【问题描述】:

我有一个分离点的二值图像。

有没有 ImageJ 插件可以构建所有点的凸包?

或者你能推荐另一个可以做到这一点的程序,而不是 ImageJ?

【问题讨论】:

    标签: image-processing imagej binary-image fiji


    【解决方案1】:

    使用 OpenCV,您可以使用 findContours(),然后使用 convexHull()

    您可以在此处查看完整示例:https://docs.opencv.org/2.4/doc/tutorials/imgproc/shapedescriptors/hull/hull.html

    OpenCV 是一个库,这意味着您必须自己编写程序。它具有 Java、python 和许多其他语言的绑定。您可以轻松找到其他语言的相同示例:

    Convex Hull on Java Android Opencv 2.3

    【讨论】:

      【解决方案2】:

      如果您在 ImageJ 中有一个 8 位(二进制)图像,您可以从 script editor 运行以下 Groovy 脚本来获取凸包作为当前选择:

      #@ ImagePlus imp
      
      import ij.gui.PolygonRoi
      import ij.gui.Roi
      import ij.plugin.filter.ThresholdToSelection
      import ij.process.ImageProcessor
      
      imp.getProcessor().setThreshold(128,255,ImageProcessor.NO_LUT_UPDATE)
      roi = ThresholdToSelection.run(imp)
      proi = new PolygonRoi(roi.getContainedFloatPoints(), Roi.POLYGON)
      chRoi = new PolygonRoi(proi.getConvexHull(), Roi.POLYGON)
      imp.setRoi(chRoi)
      

      请注意,一般而言,此类问题在这里可能被视为题外话,最好在 ImageJ forum 上提问,在那里您可以从图像处理专家那里获得建议。

      【讨论】:

      • 谢谢,我已经编写了自己的脚本。
      • @IvanZ 你介意分享一下你最后是如何解决的吗?也许作为这个问题的新答案?我很想看看其他人如何解决这个问题。
      • 对于其他对此主题感兴趣的人:相关问题另请参阅this ImageJ forum discussion
      【解决方案3】:

      Edit-Selection-make 选择,然后是 ConvexHull

      【讨论】:

        猜你喜欢
        • 2011-06-03
        • 1970-01-01
        • 2018-01-20
        • 1970-01-01
        • 2022-09-24
        • 1970-01-01
        • 2014-04-02
        • 2011-02-15
        • 1970-01-01
        相关资源
        最近更新 更多