概要
Q.73〜76では、画像の縮小・拡大から複数スケールの表現を作り、スケール間の差を使って 高周波成分と顕著性マップを求めます。
縮小してから拡大する(Q.73)
画像を小さくして元のサイズへ戻すと、細かな情報が失われます。元画像と見比べることで、 解像度の低下が輪郭や模様へ与える影響を確認できます。
ピラミッド差分(Q.74)
元画像から縮小・拡大した画像を引くと、縮小時に失われた細部が残ります。これはローパス画像を 引いて高周波成分を取り出す処理と考えられます。
ガウシアンピラミッド(Q.75)
画像を段階的に縮小し、異なる解像度の画像群を作ります。同じ物体でも、近距離では大きく、 遠距離では小さく見えるため、複数スケールで特徴を調べる土台になります。
原画像 → 1/2 → 1/4 → 1/8 → 1/16
顕著性マップ(Q.76)
異なるスケールの画像を同じ大きさへ戻して差を取り、複数の組み合わせを加算します。 周囲と異なる構造が複数スケールで強調され、人の注意を引きやすい領域の候補になります。
空間フィルタとの関係
ガウシアンピラミッドの各段は、平滑化してから間引くことで作るのが基本です。平滑化せずに 縮小すると高周波成分が低周波へ折り返すエイリアシングが発生します。Q.9のガウシアン フィルタと画像補間が、ここではマルチスケール処理の部品として再登場します。
ピラミッドを実装する順序
各段は「ガウシアン平滑化 → 2画素ごとの間引き」で作ります。縮小後のサイズを
Math.floor(width / 2)とするのか切り上げるのかを統一し、奇数サイズの画像でも配列長が
一致するようにします。
元サイズへ戻すときは補間を使いますが、拡大しても失われた高周波が復元されるわけではありません。 元画像と拡大画像の差が細部を表すため、この差を段ごとに保存するのがラプラシアンピラミッドです。
顕著性マップを安定して合成する
異なる段の差を取る前に、幅と高さを完全に揃えます。1画素のずれでも画像全体に偽の輪郭が出ます。 各差分マップは値域が異なるため、個別に正規化してから加算するか、同じ尺度のまま重み付けするかを 明示します。
処理時間とメモリは、元画像に加えて各縮小画像と差分画像を保持するかで変わります。表示に不要な 中間結果は再利用できますが、学習時は各段を並べて可視化すると、エイリアシングや位置ずれを 見つけやすくなります。