• ベストアンサー

2次元フーリエ変換

ある画像f(x,y)をθ回転させたものを2次元フーリエ変換すると、それはf(x,y)の2次元フーリエ変換F(u,v)の結果をθ回転したものになるみたいなのですが、どうしてそうなるのかわかりません。 拙い説明で申し訳ありませんがよろしくお願いいたします。

  • mtn8
  • お礼率84% (21/25)

質問者が選んだベストアンサー

  • ベストアンサー
  • atushi256
  • ベストアンサー率62% (10/16)
回答No.2

[A] 回転なしで変換する場合、単純にフーリエ変換するだけなので、 F(u,v)=∬f(x,y)*exp(i{u,v}・{x,y})dxdy [B] θ回転させるには、以下の様に座標変換をすればよいから、 x <= x*cosθ-y*sinθ y <= x*sinθ+y*cosθ f(x,y) <= f(x*cosθ-y*sinθ,x*sinθ+y*cosθ) θ回転させた後にフーリエ変換した場合 F(u,v)=∬f(x*cosθ-y*sinθ,x*sinθ+y*cosθ)*exp(i{u,v}・{x,y})dxdy [C] フーリエ変換後にθ回転させた場合 u => u*cosθ-v*sinθ v => u*sinθ+v*cosθ F(u,v)=∬f(x,y)*exp(i{u*cosθ-v*sinθ,u*sinθ+v*cosθ}・{x,y})dxdy =∬f(x,y)*exp(i{u*x*cosθ-v*x*sinθ+u*y*sinθ+v*y*cosθ})dxdy =∬f(x,y)*exp(i{u*(x*cosθ+y*sinθ)+v*(-x*sinθ+y*cosθ)})dxdy =∬f(x,y)*exp(i{u,v}・{x*cosθ+y*sinθ,-x*sinθ+y*cosθ})dxdy 以下の様な変数変換を考える z = x*cosθ+y*sinθ w = -x*sinθ+y*cosθ ここでx,yについて逆に解くと x = z*cosθ-w*sinθ y = z*sinθ+w*cosθ また dzdw= | cosθ +sinθ| | -sinθ cosθ|*dxdy =(cosθcosθ+sinθsinθ)dxdy =dxdy 以上より F(u,v)=∬f(z*cosθ-w*sinθ,z*sinθ+w*cosθ)*exp(i{u,v}・{z,w})dzdw 積分変数の文字は自由に変えてよいからz->x,w->yと書けば F(u,v)=∬f(x*cosθ-y*sinθ,x*sinθ+y*cosθ)*exp(i{u,v}・{x,y})dxdy [B]と[C]より題意は示された。 ---------------------------------------- 興味があったので、やってみました。 フーリエ変換の係数とか、細かいところは省略しました。 間違ってたらごめんなさい。

mtn8
質問者

補足

回答の方、ありがとうございました。 もしよろしければ dzdw= | cosθ +sinθ| | -sinθ cosθ|*dxdy =(cosθcosθ+sinθsinθ)dxdy の部分についてなぜこうなるのか教えていただいてもよろしいですか?

その他の回答 (2)

  • atushi256
  • ベストアンサー率62% (10/16)
回答No.3

>もしよろしければ >dzdw= >| cosθ +sinθ| >| -sinθ cosθ|*dxdy >=(cosθcosθ+sinθsinθ)dxdy >の部分についてなぜこうなるのか教えていただいてもよろしいですか? 返信が遅くなりまして、申し訳ないです。 一般に積分における変数変換をおこなう場合、(dzdwとかの)微小要素前に何か係数がつくのは理解していただけると思います。その係数はどうやって決めているのでしょうか?その決め方がヤコビアンと言われるものだと私は理解しています。ヤコビアンの導出過程や、その計算方法については以下にあげるURLを見ていただくのが早いと思います。 http://ja.wikipedia.org/wiki/%E9%96%A2%E6%95%B0%E8%A1%8C%E5%88%97%E5%BC%8F なお、z=3xとかの簡単な場合ですと、こんなヤコビアンなど意識しなくてもdz=3dxとすぐもとまりますが、2次元以上の場合非常にやっかいです。 **感覚的な理解のためには** z=3xとした場合の例から明らかですが、変数変換すると微小要素の大きさが変わりますから、dzdw=dxdyとは一般には成り立ちません。しかしながら、回転という操作はこの微小要素の大きさを変えませんので、dzdw=dxdyが常に成り立ちます。数学的にはヤコビアンが1になるということに対応します。

mtn8
質問者

お礼

詳しい回答ありがとうございました! ヤコビアンというものを知らなかったので、とても役に立ちました。また、感覚的な理解についても示していただいて、どうもありがとうございました。数式というものが苦手な方なので本当に助かりました!

  • guuman
  • ベストアンサー率30% (100/331)
回答No.1

画像関数f(x.y)をΘ回転してできる画像関数g(x,y)をf,x,yで表し補足に書け

mtn8
質問者

補足

g(x,y)=(x・cosθ-y・sinθ,x・sinθ+y・cosθ) ですか? あまり自信がありません。

関連するQ&A

  • 4次元フーリエ変換による音波の解析について

    4次元フーリエ変換f(x,y,z,t) → F(kx,ky,kz,ω)についての質問です. 現在,独学で,FFTを用いて音波f(x,y,z,t)を解析しようとしています. ここで,4次元フーリエ変換 f(x,y,z,t) → F(kx,ky,kz,ω) を行った場合,Fは一体どのような意味を持つ値なのでしょうか. また,この4次元フーリエ変換を用いて,波数kと周波数ωの関係を表すにはどうすれば良いでしょうか. どうかご回答よろしくお願いいたします.

  • 2次元フーリエ変換

    g(x,y)=sin(a*x+b*sin(c*y))の2次元フーリエ変換を導出できません。 G(u,v)=∫[-∞,∞]∫[-∞,∞] sin(a*x+b*sin(c*y))exp(-iux)exp(-ivy)dxdy で変形していくと 1/2i (δ(u-a)∫exp(ib*sin(cy)-ivy))dy+δ(u+a)∫exp(-ib*sin(cy)-ivy)) =1/2i (δ(u-a)∫exp(b(exp(icy)-exp(-icy))/2-ivy))dy+δ(u+a)∫exp(-b(exp(icy)-exp(-icy))/2-ivy)) となりexpのなかにyとsin(y)だったりyとexp(y)が混在してうまく積分が思い浮かびません。 ご教示宜しくお願いします。

  • フーリエ変換

    2つの問題があります。 もし、解法がお分かりの方がいらっしゃいましたら、ご教授ください。 フーリエ変換は、次のように表す。 F(u)=∫(-∞→∞) f(x)e^(-i2πux) dx (1)f(x)をcだけ推移させた関数f(x-c)のフーリエ変換を求めなさい。 (2)f(x)=ae^(-bx^2)のフーリエ変換を求め、(1)の答えをふまえて、f(x)=ae^(-b(x-c)^2)のフーリエ変換を求めよ。ただし、∫(-∞→∞) e^(-x^2) = √π とする。 -----自分での解答----- (1)F(u)=∫(-∞→∞) f(x-c)e^(-i2πu(x-c)) dx このような解答でよろしいのでしょうか? (2)F(u)=∫(-∞→∞) ae^(-bx^2) e^(-i2πux) dx ←中略→ F(u)=((a√π)/√b)*e^((-π^2*y^2)/b) とのあと、どのように計算していいのか分かりません。

  • フーリエ変換

    さっそく質問なんですが。 f(x)=0 (-∞<x<-1 ) 1 (-1<=x<0 ) -1 ( 0<=x<1 ) 0 ( 1<=x<∞ ) この関数のフーリエ変換を求める問題なんですが。 僕は フーリエ変換 = 1/(√2π)∫[-1~0]e^(-jux)dx-1/(√2π)∫[0~1]e^(-jux)dx ※[ ]は積分範囲 とやって解いたんですが。 答えが (1/j)*√(2/π)*{(cos(u)-1}/u になってしまいました。 解答を見ると √(2/π)*{(cos(u)-1}/u となっていて(1/j)が余分な結果なりました。 どうして合わないのか教えてください。 非常にわかりにくい式ですいません。

  • 画像の2次元フーリエ変換の結果の表示の仕方について

    現在、C言語で画像に2次元離散フーリエ変換を施し、高速フーリエ変換と比較しろという課題に取り組んでいます。 以下の様なプロセスで2次元フーリエ離散変換を施し、結果を表示しようと思っています。 ・画像を読み込み、float型配列に入れる。 (画像は一番左上が原点とします。256×256のサイズです) ・上記のfloat型配列の、第1象限と第3象限、第2象限と第4象限を各々入れ替える。 ・各行ごと、つまり、f[0][0]~f[0][255]、f[1][0]~f[1][255]、と順々)に1次元離散フーリエ変換を施す。 ・上記のフーリエ変換の結果を各列ごと、つまり、f[0][0]~f[255][0],f[1][1]~f[255][1]という風に1次元離散フーリエ変換を施す。 ・フーリエ変換の結果の、第1象限と第3象限、第2象限と第4象限を各々入れ替える。 ・f[][]のパワースペクトル(実部の2乗+虚部の2乗の、自然対数をとったもの)を計算する。 ・そのパワースペクトルとをfloat型なので、char型に置き換えて画像として出力する。 正規化等の少し細かいところは省略しました。 結果として、参考書等で見かけるもの(真ん中が直流成分で、含まれる周波数を濃淡で表したもの)になればいいのですが、上記のプロセスで大丈夫ですか? パワースペクトルを計算した後に、何らかの移動の処理(つまり、画像の真ん中が直流成分となるような処理)を施す必要がなく、 フーリエ変換の計算の前と後に象限の入れ替えを施すだけで、直流成分が出力画像の真ん中に来るということですか? フーリエ変換の前と後で、象限を入れ替えるだけで周波数空間では原点が真ん中になることが納得できないです。 ややこしい質問ですが、「プロセスのここが間違ってるよ」等を教えていただけると助かります。特にパワースペクトルの部分等。 よろしくお願いします。

  • 2次元離散フーリエ変換について

    2次元離散フーリエ変換の2次元FFTを用いて、縦256×横256 縦1024×横1024の場合の画像を大きさを求めてもらいたいです。 2次元フーリエ変換について調べたのですが理解することが出来ませんでした。 お手数ですが回答お願いします

  • 2次元フーリエ変換の実際について

    「画像などを対象にする2次元フーリエ変換は、縦方向の1次元フーリエ変換と横方向の1次元フーリエ変換を組み合わせることにより計算できます」 との解説があります。下に示すような2次元の値で計算する場合、具体的にどのようにすればよいのでしょうか? (9×9ピクセルの2次元画像でa1~a9はピクセル値とする)           a1 a2 a3            a4 a5 a6            a7 a8 a9 計算方法 1) 横方向(→方向)の1次元フーリエ変換をおこなう          →a1 a2 a3          →a4 a5 a6          →a7 a8 a9 2) 縦方向(→方向)の1次元フーリエ変換をおこなう          →a1 a4 a7          →a2 a5 a8          →a3 a6 a9 これはできるのですが、「縦方向の1次元フーリエ変換と横方向の1次元フーリエ変換を組み合わせる」の意味がわかりません。 横方向や縦方向の1次元フーリエ変換した値をどのようにすればいいのでしょうか? 具体的に教えてください。

  • 多次元フーリエ変換のプログラムについて

    ある物理量に関して物理空間(x,y,z,t)と周波数・波数空間(kx,ky,kz,ω)の変換ができるプログラムを探しています。多次元フーリエ変換(この場合は4次元フーリエ変換?)のプログラムになると思いますが、ネット上などで検索できるでしょうか。1次元の場合は手元にありますが、それを変形して作成することができるかな?と思っていますが。それよりもこのようなプログラムはちゃんとしたものが1つあればよいわけですから、しっかりした既存のものを使いたいです。変換のアルゴリズムはFFTになると思いますが、そうでなくてもいいのです。ブラックボックス的なことでよいのですが。 以上、よろしくお願いします。

  • フーリエ変換について

    フーリエ変換の関係が成り立っているとき、 f(x)=int d^3k F(k) exp[-ik.x] xとkの関係はどうなっているのですか?(x, kは3次元(何次元でもいいですが)ベクトル) 直交しているのでしょうか?

  • フーリエ変換について

    フーリエ変換表などと載ってる「f(ax)→F(ν/a)/|a|」 を証明したいのですが、どうしても解けません。 f(x)の変換後をF(ν)、変換をZとして Z=∫f(ax)・exp(-2πiux)dx にy=ax、x=y/aとして代入して解いているのですが そもそもこのやり方が間違っているのか、 計算途中でミスしているのか、わかりません。 教えてください、お願いします。