2

画像があり、その内側の軸を横切るピクセルを取得したいと思います。それらを取得するためにスケルトン化メソッドと内側軸メソッドを使用しようとしましたが、どちらのメソッドも、対応するオブジェクトよりも短い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ライブラリが必要です。

ありがとう

4

1 に答える 1

0

あなたの質問は少し不適切だと思います。ここで 2 つの質問がありますが、2 つ目の質問にお答えします。

中心軸に垂直な線を描画します。それに関する問題は、中心軸が必ずしも直線であるとは限らず、通常は湾曲していることです。

あなたの最善の策は、互いに近い中心軸から 2 つのサンプル ポイントを取得することです。これらの 2 点が直線を定義します。次に、これら 2 点の垂直二等分線を計算できます。

于 2012-11-17T01:57:07.060 に答える