0

scikit image libaryにあるquickshiftメソッドを使用して画像を分割しました。どのようにしてスーパーピクセルの平均色と面積を計算できますか? quickshift()メソッドの戻り値をどのように解釈できますか?ドキュメンテーションでは、戻り値は "セグメントラベルを示す整数マスク"と表示されていますが、これは私にとっては明らかではありません。このプレゼンテーションで私の人生はもっと楽になるでしょう(私はOpenCVでこの種のマスクを使っていましたが)、どのようにして元の画像の形でブール配列を作ることができますか?これで私を助けることができますか?私のコード(scikit-画像のウェブサイトから簡単な例):平均値と面積:scikit-imageのスーパーピクセルの平均色を計算する方法

from skimage.data import astronaut 
from skimage.segmentation import felzenszwalb, slic, quickshift 
from skimage.segmentation import mark_boundaries 
from skimage.util import img_as_float 

img = img_as_float(astronaut()[::2, ::2]) 
segments_quick = quickshift(img, kernel_size=3, max_dist=6, ratio=0.5) 

print("Quickshift number of segments: %d" % len(np.unique(segments_quick))) 
plt.imshow(mark_boundaries(img, segments_quick)) 

plt.show() 

答えて

3

skimage.measure.regionprops機能は、興味のあるものを含めてラベルされた領域のプロパティを返します。

from skimage import measure 
regions = measure.regionprops(segments_quick, intensity_image=img) 

regionsは、各エントリに、スーパーピクセルを表すRegionPropertyオブジェクトリストで次のようにあなたはそれを使用しています。次のように領域プロパティを照会できます。

print([r.area for r in regions]) 
print([r.mean_intensity for r in regions])