如何解决从骨架中过滤掉分支 (Python)
我有一个骨架,我想删除除主分支之外的所有分支。因此我过滤了最长的分支。这没有给出想要的结果。在大多数情况下它是有效的,但对于主分支来说,直的更重要,然后是最长的,在某些情况下,最长的分支并不自动是最直的。路径错误的例子是深红色,应该是正确路径的例子是蓝色,红色是代码中已经正确的路径。我正在寻找的是通过例如过滤掉分支的可能性一个陡峭的角度。
from skimage import morphology
from skan.pre import threshold
import matplotlib.pyplot as plt
from fil_finder import FilFinder2D
import astropy.units as u
import pandas as pd
# get skeleton
thresholded = threshold(img_binary,smooth_method='Gaussian')
skeleton = morphology.skeletonize(thresholded)
spacing_mm = 0.0097087
skel = Skeleton(skeleton,spacing=spacing_mm,source_image = img_binary)
# analyse
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(skel_thresh=10 * u.pix,prune_criteria='length',max_prune_iter = 5)
# Show the longest path
plt.imshow(fil.skeleton,cmap='gray')
plt.contour(fil.skeleton_longpath,colors='r')
plt.axis('off')
plt.show()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。