LoginSignup
3
2

More than 3 years have passed since last update.

2.3.4 各種コントラスト調整

Posted at

目次へのリンク

MATLABによる画像処理・コンピュータービジョン入門目次

概要

MATLABによる各種コントラスト調整について紹介します。

Image Processing Toolboxが必要です。

対応ファイル:I2_03_4_contrast.m

初期化

Code
clc;clear;close all;imtool close all;

画像読込み

Code
I = imread('I2_03_peppers_low.png');
Gray = rgb2gray(I);  % グレースケールへ変換
figure;imshow(Gray);

figure_0_png.jpg

Code
figure;imhist(Gray);     % 輝度値のヒストグラムを表示

figure_1_png.jpg

低・高輝度で1%飽和するよう自動調整

Code
Gray1 = imadjust(Gray);
figure;imhist(Gray1);

figure_2_png.jpg

Code
% 処理前後の画像を並べて表示
figure;imshow([Gray Gray1]);

figure_3_png.jpg

ヒストグラム均等化を用いたコントラストの強調:ビン間隔の調整をして、フラットになるように

Code
Gray2 = histeq(Gray, 256);
figure;imhist(Gray2);

figure_4_png.jpg

Code
% 表示
figure;imshow([Gray1 Gray2]);

figure_5_png.jpg

コントラストに制限を付けた適応ヒストグラム均等化

デフォルトでは、画像を8x8のタイルに分割して、各タイルでヒストグラム均等化処理をします。タイル境界で不連続な結果とならないように、タイルごとの結果を重み付けしてならすように処理されます。

Code
% フラットなヒストグラム
Gray3 = adapthisteq(Gray,'Distribution','uniform');
figure;imhist(Gray3);

figure_6_png.jpg

Code
%% 表示
figure;imshow([Gray1 Gray3]);

figure_7_png.jpg

ベル型ヒストグラム

各タイルで合わせこむヒストグラムの形を変えることができます。

Code
Gray4 = adapthisteq(Gray,'Distribution','rayleigh');
figure;imhist(Gray4);

figure_8_png.jpg

Code
% 表示
figure;imshow([Gray3 Gray4]);

figure_9_png.jpg

曲線ヒストグラム

Code
Gray5 = adapthisteq(Gray,'Distribution','exponential');
figure;imhist(Gray5);

figure_10_png.jpg

Code
% 表示
figure;imshow([Gray3 Gray4 Gray5]);

figure_11_png.jpg

曲線ヒストグラム: コントラスト強調の制限を調整

特に値の変化が少ない領域では、微妙な画素の値の違いがより強く強調されることになるため、コントラスト平均化によりノイジーな結果となります。これを防ぐために、ClipLimitプロパティを使うことができます。MATLABでは、ClipLimitは0-1の間で定義されますが、これは総画素数で正規化したヒストグラムの頻度を表していると私は理解しています。この値を超えた頻度となっている画素値は全体にいったんならされて、その状態でヒストグラム平均化がかかることで、過度なヒストグラム均等化を防ぐ仕組みになっているようです。なので0だと何の均等化もかからないことになり、1だと強烈に均等化される、ということになります。

下の例では逆にLimitをかけないとどうなるかがわかります。思いっきりノイジーですね。

Code
Gray6 = adapthisteq(Gray,'Distribution','exponential', 'ClipLimit', 1);
figure;imhist(Gray6);

figure_12_png.jpg

Code
% 表示
figure;imshow([Gray3 Gray4 Gray5 Gray6]);

figure_13_png.jpg

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2