[scikit-image] 29. ヒストグラムマッチング(skimage.transform.match_histograms)

python

はじめに

ここではskimage.transformの match_histogramsによるRGB画像の色味を合わせる方法について説明する。

コード

解説

モジュールのインポート

画像データの読み込み

変換したい画像としてobesa.jpgを読み込み、色味を合わせる画像として猫の画像を読み込んだ。obesaは下の画像となる。

RGBのヒストグラムを合わせる

match_histograms(image, reference, multichannel=True)において、imageに変換したい画像、referenceに合わせたい画像を指定する。multichannelをTrueとすることでRGBの各色でそれぞれヒストグラムの調整が行われる。

画像の表示

aa.set_axis_off()で軸などを非表示としている。

RGB、それぞれのヒストグラムの表示

for文のなかにfor文があるのでやや複雑になるが、順番としては、imageのR,G,B, ReferenceのR,G,B, MatchedのR,G,Bの順で図が作成される。

exposure.histogramにより画像のヒストグラムを作成する。image[…,0]がRed,image[…,1]がGreen,image[…,2]がBlueの画像となる。この3連続ドットはEllipsisオブジェクトで[…,0]は[:,:,0]と同一となる。

画像のヒストグラムは棒グラフで表示している。
同様に、cumulative_distributionにより、画像の累積ヒストグラムが作成できる。
referenceとmatchedで累積ヒストグラムの見た目がほぼ同じとなっていることがわかる。

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

参考

Page not found · GitHub Pages
skimage.data — skimage 0.23.0rc1.dev0 documentation

コメント