チーム20A3

課題名

画像の周波数成分をFFTによる可視化&アベレージフィルタリングを行うプログラム

研究者名

3年14組14番 Makoto Kageyama
3年14組16番 Tastuki Kawamoto

概要

1,高速フーリエ変換を用いて画像の周波数成分を可視化する。
以下のように処理をする。
・画像の白黒処理
・高速フーリエ変換
・変換した値の絶対値に色を対応させて強弱がわかるようにして出力

元の画像
cat.jpg

白黒処理後の画像
gray_cat.jpg

高速フーリエ変換後の値は、複素数であるため大小の判断のために絶対値を取りその値を比較し、
値に対して色付けし周波数成分の分布を表現したのが以下の画像
freq_cat.jpg
(中央->隅:高周波数->低周波数、赤->青:周波数成分が多い->少ない)

2,アベレージフィルタの適用
以下のように処理する。
・3タップのアベレージフィルタを100回ごとにかける

3タップのアベレージフィルタを100回適用
aveOut1.jpg

3タップのアベレージフィルタを200回適用
aveOut2.jpg

3タップのアベレージフィルタを300回適用
aveOut3.jpg

3タップのアベレージフィルタを400回適用
aveOut4.jpg

3タップのアベレージフィルタを500回適用
aveOut5.jpg

3タップのアベレージフィルタを600回適用
aveOut6.jpg

3タップのアベレージフィルタを700回適用
aveOut7.jpg

3タップのアベレージフィルタを800回適用
aveOut8.jpg

3タップのアベレージフィルタを900回適用
aveOut9.jpg

3タップのアベレージフィルタを1000回適用
aveOut10.jpg
アベレージフィルタを1000回程度かけることでほぼ完全に単色になったことがわかる。

プログラム

15C2,17C3を参考に実装した。

・複素数のクラス。

Complex.java


・高速フーリエ変換の計算

FFT.java


・高速フーリエ変換を2次元で計算

FFT2D


・周波数成分に色付けし表示する&アベレージフィルタの機能

ImageFFT.java


*ImageFFT.javaにアベレージフィルタを追加で実装した。


考察

・周波数成分の画像より、大部分は低周波数成分であることがわかった。
 よって、今回の画像のデータ圧縮の場合にはローパスフィルターを用いて高周波数帯を切ることでデータを圧縮することができると考察される。

・アベレージフィルタをかけた画像より、3タップのアベレージフィルタであれば100回程度までは画像を識別できるので、ぼかし処理として使えるであろうと考察できる。

  • 最終更新:2020-06-01 16:12:00

このWIKIを編集するにはパスワード入力が必要です

認証パスワード