画像があり、その内側の軸を横切るピクセルを取得したいと思います。それらを取得するためにスケルトン化メソッドと内側軸メソッドを使用しようとしましたが、どちらのメソッドも、対応するオブジェクトよりも短い1次元の線を返します。
サンプル画像を含むコードは次のとおりです。-
>>> 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_imhttp://imageshack.us/a/img23/9035/testwus .jpg sk_im http://imageshack.us/a/img585/1910/imgskx.jpg
ご覧のとおり、黒い線は図形の先端に接続されていません。
(1)画像内の形状の長さを表す完全に接続された1次元の内側軸線を取得するにはどうすればよいですか。
(2)内側軸に垂直なピクセルを取得するにはどうすればよいですか(形状の内側軸と交差する一方の側からもう一方の側に垂直な線を描画したいため)
- このようなことを実行できるPythonライブラリが必要です。
ありがとう