チーム20C1

課題名

ガウシアンフィルタとFFTの比較

研究者名

Ryota Yamada
Riku Yabe

概要

ガウシアンフィルタを通した画像に対して高速フーリエ変換を行い、
変換後の画像がフィルタのサイズに対してどのように変化するのかを比較する。

使用言語 とプログラム

・C++
 → Mandatory.cpp
 → mainwin.h
 → mainwin.cpp
 → window.h
 → window.cpp
・Java
 → Complex.java
 → FFT.java
 → FFT2D.java
 → ImageFFT.java

C++で画像処理したものをJavaのプログラムで高速フーリ変換を施した。
Javaのプログラムは、全てチーム15C2がFFT用に作成したものをそのまま利用している。

実行の流れは次のようになる。
1. C++で画像をフィルタに通す(フィルタのサイズはあらかじめコード内で指定する)
2. 手順1で処理した画像をJavaのプログラムでグレースケール画像に変換したのち、高速フーリエ変換。

Mandatory.cpp

mainwin.h

mainwin.cpp

window.h

window.cpp

画像の比較

以下の画像は全て、左:FFT前の画像、右:FFT後の画像 になっている。
・フィルタなし
20C1_test001.jpg 20C1_freq001.jpg
・サイズ4
20C1_test004.jpg 20C1_freq004.jpg
・サイズ8
20C1_test008.jpg 20C1_freq008.jpg
・サイズ32
20C1_test032.jpg 20C1_freq032.jpg
・サイズ512
20C1_test512.jpg 20C1_freq512.jpg






考察

ガウシアンフィルタを適用した画像は、高速フーリエ変換を施すと早い段階から高周波成分が取り除かれていることが伺える。
これは、ガウシアンフィルタが重みを伴うフィルタだからだと考えられる。

モザイクのサイズが細かくなるにつれ、FFT後の画像が全体的に低周波(青色)の占める割合が多くなっていることがわかる。
これはがウシアンフィルタを通したことにより、画像全体での各画素値の差が元の画像に比べて減少していくからだと考えられる。

また、FFT後の画像は格子模様が見られるが、これはフィルタを通した後の画像を扱っているので、
フィルタのサイズに合わせて現れていると考えられる。

  • 最終更新:2020-07-27 16:18:00

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

認証パスワード