将skeletonization应用于图片(),
我想使用python测量最长的分支或骨架的脊柱。 ImageJ有几个工具可以完成这项工作,其中一个是Measure_Skeleton_length,另一个是AnalyzeSkeleton。 python中的任何工具或建议?
答案 0 :(得分:2)
这是对原始问题的很晚答复,但以防万一仍然需要帮助的人可能最终阅读了这篇文章。有一个很棒的python软件包,用于分析骨架,称为FilFinder
(pip install fil_finder
),可以很好地解决此问题。以下是他们的tutorial
import numpy as np
import cv2
import matplotlib.pyplot as plt
from fil_finder import FilFinder2D
import astropy.units as u
skeleton = ... #in numpy array format
fil = FilFinder2D(skeleton, distance=250 * u.pc, mask=skeleton)
fil.preprocess_image(flatten_percent=85)
fil.create_mask(border_masking=True, verbose=False,
use_existing_mask=True)
fil.medskel(verbose=False)
fil.analyze_skeletons(branch_thresh=40* u.pix, skel_thresh=10 * u.pix, prune_criteria='length')
plt.imshow(fil.skeleton, cmap='gray')
plt.contour(fil.skeleton_longpath, colors='r')
plt.axis('off')
plt.show()
输出
答案 1 :(得分:1)
我不知道python工具,但是从算法的角度来看这是一种方法:
然后,您在地图计算过程中找到的最大距离将是您想要的距离。第1点是基本编码,因此您可以在Python中完成,但您必须找到第2点的库。