octave で画像処理 - 画像の縮小 bilinear 法

アンチエイリアジングフィルタとして bilinear 法を使って画像を縮小してみます. フィルタが bilinear 法に変わっただけで,考え方や手順は前回と一緒です.

bilinear フィルタの重み付け係数

係数の比率としては画像の拡大と全く一緒です. が,今回は黒画素が水増しされてるわけではないので,係数の総和が 1 になるよう正規化します.

1/161/81/16
1/81/41/8
1/161/81/16

フィルタリング

それでは octave 上で実際にやってみます.

octave:1> [ x m a ] = imread ( 'gaishi.jpg' );        # 元画像の読み込み
octave:2> x = double ( x ) / 255;                     # double 型に変換
octave:3> h = [ .25 .5 .25; .5 1 .5; .25 .5 .25 ]/4;  # 重み付け係数の定義
octave:4> xf(:,:,1) = conv2 ( x(:,:,1), h );          # RGB 各プレーンに対して
octave:5> xf(:,:,2) = conv2 ( x(:,:,2), h );          # フィルタを適用
octave:6> xf(:,:,3) = conv2 ( x(:,:,3), h );
octave:7> imshow ( xf );                              # 画像のプレビュー
gaishi_bl.jpg

画素の間引き

octave:8> x2 = resample( xf, 2 );                     # 画素の間引き
octave:9> imshow ( x2 );                              # 画像のプレビュー
gaishih_bl.jpg

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-04-25 (日) 07:55:37 (5138d)