Tweet

octave で画像処理 - ギブズの現象

タイトルでネタバレしてるような気もしますが,気にしないでいきます.

しましま

先日の「空間周波数領域での画像拡大」法で拡大した画像の端をよく見ると,変なしましまが現れています. こいつは困りますね.

gaishi2_sf.jpg

市松模様

というわけで,今回はこんな画像を拡大してみます. 2x2 マスの白黒の市松模様です.

hatch.jpg

やってみる

octave:1> x(:,:,1) = [ ones(128) zeros(128); zeros(128) ones(128) ]; # RGB各プレーンに市松模様を代入
octave:2> x(:,:,2) = [ ones(128) zeros(128); zeros(128) ones(128) ];
octave:3> x(:,:,3) = [ ones(128) zeros(128); zeros(128) ones(128) ];
octave:4> y = fft2(x);                                               # 2次元FFT
octave:5> y2 = magnify_f(y,2);                                       # 空間周波数領域で画像拡大
octave:6> x2 = ifft2 ( y2 );                                         # 2次元逆FFT
octave:7> imshow ( real(x2)*4);                                      # 拡大画像の表示

こんな風になりました.

hatch2.jpg

碍子画像と同様,画像 4 辺の端にしましまが現れています. が,同様のしましまが白黒の境目近辺にも現れています.

実はこれ,ギブズの現象と考えられます. ギブズの現象は,時間領域で変化が急峻なところ(方形波の立ち上がりなど)で起こる現象です. 変化が急峻な部分を有限の周波数成分で近似しようとしてもなかなか収束しない,つまり,変化が急峻な部分は高い周波数成分を多く含んでいる,とも言えます.

この画像については,空間周波数領域で高い空間周波数成分(中身は all 0)を追加したたことで,結果的には「有限の周波数成分で近似を打ち切った」のと同じ状態になったしまったために現象が起きたわけです.

なぜ画像の端で?

画像中央のしましまはギブズの現象で説明がつきました. が,なぜ画像の端でも同様の現象が生じているのでしょうか?

というあたりを次回書く予定.


添付ファイル: filehatch2.jpg 778件 [詳細] filehatch.jpg 23件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-04-20 (火) 00:03:30 (3561d)