[scikit-image] 4. RGBをHSVに変換して、2値化処理

python
スポンサーリンク

skimage.colorのrgb2hsvでRGB画像をHSV画像に変換して、value値を使って2値化処理

コード

解説

RGBをHSV(色相、彩度、明度)に変換することで、画像の分離(2値化)がやりやすくなる。RGBでは、色相と明度はR、G、Bそれぞれが合体した状態となっているが、HSV画像は色相と明度が分離される。画像の単純なセグメント化は、HSVのしきい値処理によって効果的に実行することができる。

モジュールのインポート

画像をHSVに変換

rgb2hsvにより、RGB画像をHSV画像に変換する。
変換した変数の[:,:,0]が色相(Hue)で[:,:,1]が彩度(Saturation)、[:,:,2]が明度(Value)となる。

画像の表示

しきい値処理による2値化

value値でしきい値処理をする。ここでは、0.13以上と以下で2つに分離した。

ax0.hist(hue_img.ravel(), 512)でhue_imgのヒストグラムをbin数を512として作成。ax0.axvline(x=hue_threshold, color=’r’, linestyle=’dashed’, linewidth=2)でしきい値としたvalueの値のところに、赤い点線の垂線を表示する。
ax1.imshow(binary_img)で画像が表示される。defaultのcmapであるviridisが適用されるので、濃紫と黄の2値化像となる。

参考

RGB to HSV — skimage v0.15.0 docs
Module: color — skimage v0.15.dev0 docs

コメント