Как создать выпуклую оболочку из всех бинарных пятен в ImageJ
3 ответа
При условии, что у вас есть 8-битное (двоичное) изображение в ImageJ, вы можете запустить следующий скрипт 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, где вы получите совет от экспертов по обработке изображений.
С OpenCV вы можете использовать findContours(), а затем ConvexHull()
Вы можете увидеть полный пример здесь: https://docs.opencv.org/2.4/doc/tutorials/imgproc/shapedescriptors/hull/hull.html
OpenCV - это библиотека, а это значит, что вы должны кодировать программу самостоятельно. У него есть привязки для Java, Python и многих других языков. Вы можете легко найти тот же пример на других языках: