はじめに
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より大きくする必要がある。カラー画像にも使用できるようである。
参考
Histogram Equalization — skimage 0.25.1 documentation
skimage.exposure — skimage 0.25.1 documentation
コメント