我有一个分离点的二进制图像。
是否有任何 ImageJ 插件可以构建所有点的凸包?
或者你能推荐另一个可以做到这一点的程序,而不是 ImageJ?
使用 OpenCV,您可以使用 findContours() 和 convexHull()
你可以在这里看到一个完整的例子:https ://docs.opencv.org/2.4/doc/tutorials/imgproc/shapeescriptors/hull/hull.html
OpenCV 是一个库,这意味着您必须自己编写程序。它具有 Java、python 和许多其他语言的绑定。您可以轻松找到其他语言的相同示例:
如果您在 ImageJ 中有一个 8 位(二进制)图像,您可以从脚本编辑器运行以下 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 论坛上提问,在那里您可以从图像处理专家那里获得建议。
Edit-Selection-make 选择,然后是 ConvexHull