[scikit-image] 8. 各種均等化法によるコントラストの補正

python

はじめに

skimage.exposureのrescale_intensity, equalize_histとequalize_adapthistによる画像のコントラストの補正について説明する。

コード

解説

この例では、 ヒストグラム均等化、コントラストストレッチと呼ばれる方法を使用して、コントラストの低い画像を強調する。

モジュールのインポート

画像とヒストグラム、累積ヒストグラムを表示する関数

これは、

[scikit-image] 6. ヒストグラム均等化による高コントラスト化
skimage.filters の rank.equalizeによりコントラストを高める
[scikit-image] 7. ガンマ補正と対数補正
skimage.exposureのadjust_gamma と adjust_logによる画像のコントラストの補正

のものとほぼ同じとなっている。

画像の読み込み

rgb2grayでグレースケール画像に変換する。

画像のコントラストストレッチによる補正

np.percentile(img, (10, 90))で下から10%のデータと90%のデータを取得できる。
取得したデータの範囲内で再スケールングされるので、コントラストが高まる。

equalize_histによる補正

累積ヒストグラムが直線になるようにヒストグラムが均等化される。

equalize_adapthistによる補正

局所的なコントラストに応じて均等化するので、全体のコントラストがうまい具合に平坦化する。
kernel_sizeを指定しない場合は、デフォルト値として、画像の縦横の 1 / 8のサイズとなる。
clip_limitはコントラスト強調を制限する比率で、0より大きくする必要がある。カラー画像にも使用できるようである。

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

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

参考

Histogram Equalization — skimage 0.23.1 documentation
skimage.exposure — skimage 0.23.1 documentation

コメント