6.3 2次元DFT (1)2次元DFTとは 画像のような2次元信号をサンプリングしたデータを 2次元DFTを

Slides:



Advertisements
Similar presentations
情報基礎実習 I (第6回) 木曜4・5限 担当:北川 晃. Stream クラスを用いたファイルの接続 … Dim インスタンス名 As New IO.StreamReader( _ “ ファイルの絶対パス ”, _ System.Text.Encoding.Default) … s = インスタンス名.
Advertisements

8.4 偏微分方程式の数値解 法 [偏微分の復習 (1)] のとき このこの と を 座標系の座標値とすると, と は独立。お互いに直交する値であるから, は意味がない。
1 情報基礎 A 第 9 週 プログラミング入門 VBA の基本文法 1 準備・変数・データの入出力 徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
5.制御構造と配列 場合分け( If Then Else , Select Case ) 繰返し( Do While ) 繰返しその2( For Next )
復習.
徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野
画像処理論.
VBAを通して プログラム言語の基本構造を学ぶ
情報基礎実習I (第7回) 木曜4・5限 担当:北川 晃.
第13回構造体.
第12回構造体.
VBA H106077 寺沢友宏.
情報基礎A 第13週 VBAプログラミング VBAの基本文法7・実際のデータ処理
情報基礎A 第10週 プログラミング入門 VBAの基本文法2 データ型・If ~Then~Else
Excelによる3-D/等高線グラフの描画 2変数関数の描画 Excel によるグレイスケールマップ風描画
Excelによる3-D/等高線グラフの描画 2変数関数の描画 Excel によるグレイスケールマップ風描画
情報基礎A 第7週 プログラミング入門 VBAの基本文法2 データ型・If ~Then~Else
デジタル信号処理③
担当 : 山口 匡 伊藤 祐吾 (TA) 宮内 裕輔 (TA)
情報基礎A 第14週プログラミング 実際のデータ処理での応用(2)
4.2 連立非線形方程式 (1)繰返し法による方法
情報基礎A 第11週 プログラミング入門 VBAの基本文法3 配列・For~Next
6.4 離散的コサイン変換 (DCT : discrete cosine transform ) (1)DCTとは
デジタル信号処理④
テキストボックス、チェックボックス×2、コマンドボタンを配置する。 コマンドボタンに機能を与える
実例で学ぶプログラミング VBAを用いて簡単なゲームを作ろう 徳山 豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
プログラミング2 関数
本時の目標 「簡単なプログラム言語の意味を理解し、マクロ機能を使って簡単なプログラムを作ることができる。」
情報工学Ⅱ (第9回) 月曜4限 担当:北川 晃.
電気・機械・情報概論 VBAプログラミング 第2回 2018年7月2日
地域情報学演習 VBAプログラミング 第2回 2017年10月17日
地域情報学演習 VBAプログラミング 第3回 2017年10月24日
デザイン情報学科 メディア情報設計 河原英紀
前回の練習問題.
 2 文字の式 1章 文字を使った式 §4 式の計算         (4時間).
相関.
デザイン情報学科 メディア情報設計 河原英紀
デザイン情報学科 メディア情報設計 河原英紀
実践プログラミング入門2 配列を使ってゲームを作ろう 徳山 豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
第3章 演算装置.
情報基礎Ⅱ (第11回) 月曜4限 担当:北川 晃.
第7回課題 フィボナッチ数列 (コード:p.171) について,fib(4) を呼び出したときの起こる出来事は以下の通りである.
長崎市① 長崎市における平和学習スポット (社)長崎県観光連盟.
「入力」はInputBoxやテキストボックスに限らず、 セルからのデータの入力や、チェックボックス等からの入力全てを含める。
VBで始めるプログラミング 第三回 コードを書こう!! まきはた@ナーク ’04/05/21.
ブレッド・ボードを用いた回路の作成 気温データ・ロガー編.
先週の復習 2重ループを用いた、 表の記入と読み込み.
第6回レポート解説 条件1 条件2 条件3 月の入力 月、日、曜日の表示 日の入力 曜日の入力
情報工学Ⅱ (第9回) 月曜4限 担当:北川 晃.
E-精算インストール説明書.
Excelによる3-D/等高線グラフの描画 2変数関数の描画 Excel によるグレイスケールマップ風描画
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
情報工学Ⅱ (第8回) 月曜4限 担当:北川 晃.
ブレッド・ボードを用いた回路の作成 気温データ・ロガー編.
アルゴリズムの視覚化 この図は左が大きく、 右が小さくなるようにソートしている  この図は左が大きく、  右が小さくなるようにソートしている
場合分け(If Then Else,Select Case) 繰返し(Do While) 繰返しその2(For Next)
6.2 高速フーリエ変換 (1)FFT(fast Fourier transform)とは
6.5 アダマール(Hadamard)変換 (1)アダマール変換とは
共振を防ぐように設計を行ったり, 振動を早く減衰させる設計を行う際, 固有値と固有ベクトルを求めることが重要
7.2 回帰曲線 身長と体重…関係がありそう? ??? 身長と体重の関係をグラフで観察する.
コンピュータの高速化により, 即座に計算できるようになってきたが, 手法的にはコンピュータ出現以前に考え出された 方法が数多く使われている。
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
プログラミング言語によっては,複素数が使えない。
6.ユーザ定義型.
情報基礎A 第14週プログラミング 実際のデータ処理での応用(2)
プログラミング演習I 補講用課題
5.2 グレゴリー・ニュートン(Gregory-Newton)の補間式 (1)導入
8.2 数値積分 (1)どんなときに数値積分を行うのか?
5.3 ラグランジェ(Lagrange)の補間式
8.数値微分・積分・微分方程式 工学的問題においては 解析的に微分値や積分値を求めたり, 微分方程式を解くことが難しいケースも多い。
Presentation transcript:

6.3 2次元DFT (1)2次元DFTとは 画像のような2次元信号をサンプリングしたデータを 2次元DFTを 6.3 2次元DFT (1)2次元DFTとは 画像のような2次元信号をサンプリングしたデータを 2次元DFTを とすると,以下のように定義される。

(2)方式 定義式は次のように変形できる すなわち, 方向により1次元DFTのあと, 方向による1次元 DFTを行えばよい。 … … …

(3)周波数の並べ方 1次元の場合,直流分を左に配置するが, 2次元の場合,直流分を中央に配置するのが便利 … … … … 画像の場合,通常 通常のDFTにおける周波数配置 … … … … 負の周波数に対応させる

中央にシフトする方法 として, に を乗ずる。 したがって,次のような式として処理する。

VBAでの記述 準備 Xの値を保存する「X」,「Y」,「Z」シートを用意する。

VBAでの記述 ②データ宣言 Private Const Max = 100 Private X(Max, Max) As Complex Private Y1(Max, Max) As Complex Private Y2(Max, Max) As Complex Private Z1(Max, Max) As Complex Private Z2(Max, Max) As Complex

VBAでの記述 ③データの設定 (色々な関数を設定して確かめてみよう) Private Sub 関数0() DX = 0.3 For j = 0 To Max XX = (j - Max / 2) * DX For k = 0 To Max YY = (k - Max / 2) * DX R = Sqr(XX * XX + YY * YY) If R < 0.00001 Then V = 1 Else VV = Sin(R) V = Sin(R) / R End If X(j, k) = SetC(V, 0) Next End Sub

VBAでの記述 ④結果設定(1) Sub 結果設定() With Worksheets("X") For k = 0 To Max .Cells(1, k + 2) = k Next For j = 0 To Max .Cells(j + 2, 1) = j .Cells(j + 2, k + 2) = X(j, k).実部 End With

VBAでの記述 ⑤結果設定(2) With Worksheets("Y") For k = 0 To Max .Cells(1, k + 2) = k Next For j = 0 To Max .Cells(j + 2, 1) = j .Cells(j + 2, k + 2) = Y2(j, k).実部 End With

VBAでの記述 ⑥結果設定(3)とClickイベントハンドラ With Worksheets("Z") For k = 0 To Max .Cells(1, k + 2) = k Next For j = 0 To Max .Cells(j + 2, 1) = j .Cells(j + 2, k + 2) = Z2(j, k).実部 End With End Sub Sub ボタン1_Click() 関数0 DFT IDFT 結果設定

VBAでの記述 ⑦2次元DFT(1) Private Sub DFT() ' 2次元DFT m = Max: ARG= -6.28318530717959 / m For k = 0 To m For N = 0 To m DD = (-1) ^ (k + N) Y2(k, N).実部 = X(k, N).実部 * DD Y2(k, N).虚部 = X(k, N).虚部 * DD Next For I = 0 To m - 1 For k = 0 To m - 1 Y1(I, k) = SetC(0, 0) For N = 0 To m - 1 Y1(I, k) = AddC(Y1(I, k), MultC(Y2(I, N), ExpJ(ARG * N * k))) Y1(I, Max) = Y1(I, 0)

VBAでの記述 ⑧2次元DFT(2) For I = 0 To m - 1 For k = 0 To m - 1 Y2(k, I) = SetC(0, 0) For N = 0 To m - 1 Y2(k, I) = AddC(Y2(k, I), MultC(Y1(N, I), ExpJ(ARG * N * k))) Next Y2(Max, I) = Y2(0, I) End Sub

VBAでの記述 ⑨2次元IDFT(1) Private Sub IDFT() ' 逆2次元DFT m = Max: ARG = 6.28318530717959 / m For I = 0 To m - 1 For k = 0 To m - 1 Z2(I, k) = SetC(0, 0) For N = 0 To m - 1 Z2(I, k) = AddC(Z2(I, k), MultC(Y2(I, N), ExpJ(ARG * N * k ))) Next Z2(I, Max) = Z2(I, 0) For I = 0 To m For k = 0 To m Z2(I, k) = DivR(Z2(I, k), m)

VBAでの記述 ⑩2次元IDFT(2) For I = 0 To m - 1 For k = 0 To m - 1 Z1(k, I) = SetC(0, 0) For N = 0 To m - 1 Z1(k, I) = AddC(Z1(k, I), MultC(Z2(N, I), ExpJ(ARG * N * k))) Next Z1(Max, I) = Z1(0, I) For I = 0 To m For k = 0 To m Z1(I, k) = DivR(Z1(I, k), m)

VBAでの記述 ⑪2次元IDFT(3) For k = 0 To m For N = 0 To m DD = (-1) ^ (k + N) Z2(k, N).実部 = Z1(k, N).実部 * DD Z2(k, N).虚部 = Z1(k, N).虚部 * DD Next End Sub

実行して等高線グラフにすると... FFTの結果を逆FFTすると元に戻っていることが分かる

(4)画像データのフーリエ変換 まず,写真データをDFT用のデータに… VB6,VB.Net等を使えば 写真を読み込んで白黒写真にし DFT用のデータにすることができる

以下は,VB6でピクチャボックスに読み込まれた画像を 白黒写真に変換し,DFT用のデータに変換するプログラムである。 Public 画像DT(100, 100) As Double Public Sub window(P As PictureBox, X1, Y1, X2, Y2) With P .ScaleLeft = X1 .ScaleTop = Y1 .ScaleWidth = X2 - X1 .ScaleHeight = Y2 - Y1 End With End Sub Private Sub 白黒変換() Dim X1 As Double Dim C As Double Dim C1 As Double Dim C2 As Double Dim C3 As Double window Picture2, 0, 0, 100, 100 W = Picture1.ScaleWidth H = Picture1.ScaleHeight  DW = W / 100: DH = H / 100 For I = 0 To 100 For J = 0 To 100 X = DW * J: Y = DH * I C = Picture1.Point(X, Y)   Picture2.Line (J, I)-(J + 1, I + 1), C, BF   If C < 0 Then   X = 255   Else C1 = (C \ 256) \ 256 C2 = (C \ 256) Mod 256 C3 = C Mod 256 X = (C1 + C2 + C3) / 3 End If Picture2.Line (J, I)-(J + 1, I + 1), RGB(X, X, X), BF 画像DT(I, J) = X Next End Sub

画像のフーリエ変換 画像データのフーリエ変換と逆フーリエ変換結果

色々な2次元フーリエ変換(1)

色々な2次元フーリエ変換(2)

色々な2次元フーリエ変換(3)

色々な2次元フーリエ変換(4)

色々な2次元フーリエ変換(5)