2

我有一个图像,我想获得穿过其中轴的像素。我尝试使用骨架化和中轴方法来获取它们,但是这两种方法都返回比相应对象短的一维线。

这是带有示例图像的代码:-

>>> import skimage.filter  
>>> import skimage.morphology  
>>> import numpy as np  
>>> import scipy.misc
>>> im=scipy.misc.imread('img.jpg')   
>>> thr=skimage.filter.threshold_otsu(im)  
>>> im=im > thr # Threshold the image  
>>> im_sk=skimage.morphology.skeletonize(im)  
>>> mask=np.where(im_sk==1)     # pixels of skeleton  
>>> im[mask]= 0                 # this will color the skeleton with black  

原文>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 结果
or_im http://imageshack.us/a/img23/9035/testwus .jpg sk_im http://imageshack.us/a/img585/1910/imgskx.jpg

如您所见,黑线未连接到形状的尖端。
(1) 如何获得代表图像中形状长度的全连接一维中轴线。
(2)如何获得垂直于中轴的像素(因为我想从一侧到另一侧绘制垂直线穿过形状的中轴)

  • 我需要任何可以做这些事情的python库。

谢谢

4

1 回答 1

0

我认为你的问题有点不当。你有两个问题,但我会回答第二个问题。

您想绘制垂直于中轴的线。问题在于中轴不一定是一条线,它通常是弯曲的。

您最好的选择是从中间轴上取 2 个彼此靠近的样本点。这两点定义了一条线。然后,您可以计算这两个点的垂直平分线。

于 2012-11-17T01:57:07.060 回答