Középiskolai Matematikai és Fizikai Lapok
Informatika rovattal
Kiadja a MATFUND Alapítvány
Már regisztráltál?
Új vendég vagy?

Fórum: Fourier transzformáció és inverze

Szeretnél hozzászólni? Jelentkezz be.
[23] lgdt2009-05-18 21:28:25

Legyen a kép 2N+1-szer 2N+1-es. Definiáljuk így a transzformációt:

 F({\bf b}) = \frac{1}{(2N+1)^2} \sum_{{\bf a} \in [-N..N]\times[-N..N]} f({\bf a}) e^{-2\pi i \frac{\bf{a b}}{2N+1}}

(Ez a definíció értelmes, mert csak annyiban különbözik a nullától indexelt változattól, hogy át vannak rendezve a kép pontjai.)

Pontosan ugyanaz a gondolatmenet érvényes, mint a folytonos esetben.

Előzmény: [22] Lóczi Lajos, 2009-05-16 04:41:01
[22] Lóczi Lajos2009-05-16 04:41:01

A folytonos eset rendben van. Várjuk az analízist a 90 fokos diszkrét forgatás esetén :)

Előzmény: [19] lgdt, 2009-05-16 01:41:33
[21] Lóczi Lajos2009-05-16 04:39:41

Itt egy oldal, ahol szépen meg van "világítva" a kérdés forgatás szempontjából és az ablakfüggvények szerepéről.

Előzmény: [18] athon, 2009-05-14 15:13:24
[20] lgdt2009-05-16 01:57:05

Az integrálok végéről hiányzik a da.

Előzmény: [19] lgdt, 2009-05-16 01:41:33
[19] lgdt2009-05-16 01:41:33

Azt hiszem, diszkrét esetben lehetne vitatkozni a nem 90 fokos elforgatás definícióján is. Kicsit pontosítok a megfogalmazáson, szerintem folytonos esetben igaz az állítás; diszkrét esetben 90 fokos forgatásra igaz.

Először leszögezem, hogy alapvetően fogalmam sincs arról, hogy mit beszélek, úgyhogy ne hallgassatok rám.

Definiáljuk így a transzformációt:

 F({\bf b}) = \int_{R^2}f({\bf a}) e^{-2\pi i({\bf a} {\bf b})}

A g:R2\rightarrowR2 legyen az elforgatás. Nézzük:

 \int_{R^2}f(g^{-1}({\bf a})) e^{-2\pi i({\bf a} {\bf b})} = \int_{R^2}f({\bf a}) e^{-2\pi i(g({\bf a}) {\bf b})} = \int_{R^2}f({\bf a}) e^{-2\pi i({\bf a} g^{-1}({\bf b}))} = F(g^{-1}({\bf b}))

Ez levezetés nélkül is látszik, ha elképzeljük, hogy a b vektor a hullámfrontok egyeneseinek normálvektora, és vele együtt fordul az egész hullámkép (azaz az adott bázisfüggvény).

Ezek miatt úgy sejtem, hogy ha a diszkrét képen csinálok valami elforgatásszerű dolgot, akkor ránézésre a frekvenciatérben is elforgatás történik.

A diszkrét 90 fokos esetet leírom a következő hozzászólásomban. Lehet, hogy csak holnap, mert már késő van.

Előzmény: [13] Lóczi Lajos, 2009-05-14 11:32:09
[18] athon2009-05-14 15:13:24

Speciel abban az esetben amikor az x és y koordinátákat felcseréltem az működött, de ha nem k*90 fokos szöggel akarom elforgatni a transzformált pixeleit akkor a képről kilógnak a pixelek. Ezt hibásan úgy kompenzáltam, hogy kiterjesztettem a képet kétszeresére, elforgattam majd alkalmaztam rá az inverz FFT-t. Sejtettem hogy nem fog működni. Azt szeretném akkor megtudni, hogy a Fourierrel hogyan lehet meghatározni egy forgó objektumról hogy milyen szöggel fordult el? Mert ezzel biztos meg lehet mérni.

Előzmény: [17] athon, 2009-05-14 12:44:24
[17] athon2009-05-14 12:44:24

A transzformált eredménye 2 kép, az egyik a valós értékeket tartalmazza, a másik pedig a képzetes értékeket. Ezeknek a képeknek cseréltem fel az x és y koordinátáit, majd ezekkel a képekkel megcsináltam az inverz transzformációt aminek az eredménye ugye egyetlen kép lett. Eredményül az eredeti kép 90 fokos elforgatottját kaptam, ez volt a célom. De kipróbálom kisebb léptékű forgatásokkal, aztán meglátjuk milyen eredményt kapok. Egyébként lehet más módosítást végezni a frekvencia térben hogy hasonló eredményt kapjak?

Előzmény: [15] Lóczi Lajos, 2009-05-14 11:35:49
[16] athon2009-05-14 11:41:03

Akkor gyorsan leimplementálom, a transzformált valós és képzetes részét is ugyanolyan szöggel forgatom és meglátjuk mit kapok.

Előzmény: [14] athon, 2009-05-14 11:32:58
[15] Lóczi Lajos2009-05-14 11:35:49

Ezt el tudod magyarázni a [10]-es hozzászólás példáján is? Ezek szerint vmit nem ugyanúgy értünk.

Előzmény: [12] athon, 2009-05-14 11:27:06
[14] athon2009-05-14 11:32:58

Mondjuk nem vagyok nagy matek bajnok, de a fourier transzformáció eredménye úgy tudom komplex érték lesz. A mátrix kiszámolásánál ezt figyelembe vetted?

Előzmény: [10] Lóczi Lajos, 2009-05-14 08:03:34
[13] Lóczi Lajos2009-05-14 11:32:09

Egy kettőhatvány oldalú mátrixnak nincs közepe, de ha a mátrix "geometriai" közepére veszed fel a pontot, ami körül forgatsz, akkor sem igaz az állítás:

ha egy 4x4-es mátrix 2. sorának 2. oszlopában áll egy 1-es, máshol csupa 0, akkor ennek a transzformáltja komplex számokat fog tartalmazni.

Viszont annak a mátrixnak a transzformáltja, ahol a 3. sor 3. eleme 1-es, a többi 0 [vagyis a "közepe" körül 180 fokkal forgattuk el az előző mátrixot], csupa valós számot fog tartalmazni, tehát a transzformáltak semmiképp sem egymás elforgatottjai.

Előzmény: [11] lgdt, 2009-05-14 09:09:30
[12] athon2009-05-14 11:27:06

Kipróbáltam, 90 fokkal elforgattam a transzformáltat és az inverze is 90 fokkal elfordult :) Köszönöm a segítséget!

[11] lgdt2009-05-14 09:09:30

Elnéztem volna? Sajnos most nincs időm újra átgondolni, de amit írtam, azt az origó körüli forgatásra írtam. (És nyilván az origót nem a kép sarkába, hanem a közepére célszerű felvenni.)

Előzmény: [10] Lóczi Lajos, 2009-05-14 08:03:34
[10] Lóczi Lajos2009-05-14 08:03:34

Ezzel nem értek egyet.

Tekintsük azt a 4x4 pixeles képet, amelyet az a 0-1-mátrix ír le, amelynek első sora (1,0), második sora pedig (0,0).

Az első sor diszkrét Fourier-transzformáltja (1/\sqrt{2},1/\sqrt{2}), míg a második soré (0,0) lesz. Az új mátrix első és második oszlopának transzformáltja egyaránt (1/2,1/2).

Az eredeti kép transzformáltja tehát a csupa 1/2-ből álló mátrix.

Ha viszont az eredeti képet "elforgatom", és kiindulok abból a 4x4 pixeles képből, amelynek első sora (0,0), második sora (0,1), akkor ennek Fourier-transzformáltja [először ismét a sorvektorokat, majd az oszlopvektorokat transzformálva] az a mátrix lesz, amelynek első sora (1/2,-1/2), a második sor pedig ennek az ellentettje. Ez a mátrix viszont nem elforgatottja a csupa 1/2-ből álló mátrixnak.

Előzmény: [8] lgdt, 2009-05-12 22:37:43
[9] Sirpi2009-05-13 09:11:49

Köszi, javítottam, túl ügyes akartam lenni elsőre :-) Sima szövegként tényleg csak \ jellel lehet ~-ot írni, de linkben nem kell kitenni, és egyúttal linkesítettem is az url-t. Mind1, túlragozva, a lényeg, hogy megy :-)

Előzmény: [7] athon, 2009-05-12 22:02:36
[8] lgdt2009-05-12 22:37:43

Ha az új kép nem lóg le (azaz nem kerül nem 0 értékű pixel a képen kívülre a forgatás során), akkor az elforgatott transzformáltja egyenlő a transzformált elforgatottjával.

Előzmény: [1] athon, 2009-05-12 17:41:11
[7] athon2009-05-12 22:02:36

Azért kér jelszót mert még mindíg nem jó a link, a ~ előtt ott van a \. De így már működik:

http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/dft/

Köszi a segítséget.

Előzmény: [6] Sirpi, 2009-05-12 20:47:01
[6] Sirpi2009-05-12 20:47:01

Módosítottam a linket: a ~ jel LaTeX-ben nem törő szóközt jelent, magát a jelet így lehet beírni: \~ (egy \ jel kell elé).

Viszont nekem az oldal jelszót kér és nem enged be.

Előzmény: [4] athon, 2009-05-12 18:18:02
[5] athon2009-05-12 18:22:35

De szerintem a feladat szempontjából mindegy milyen módszerrel állítom elő a Fourier transzformáltat és inverzét, lényeg hogy a frekvencia térben elegendő-e ha elforgatom a transzformáció eredményének valós és képzetes részét alpha szöggel, majd veszem az inverz Fourier transzformációját. De szerintem nem lehet ennyire triviális.

[4] athon2009-05-12 18:18:02

Nem tudom miért, de a tilda jelet nem rakja be. Ahol szóköz van ott AltGr+1 kell.

[3] athon2009-05-12 18:12:58

Erről a címről szedtem le a forráskódot, a képletek is fennt vannak. Tehát minden sorra majd oszlopra egy dimenziós diszkrét Fast Fourier transzformációt csinálok. Szürkeskálás képpel dolgozom, mivel a FFT megköveteli hogy a kép széle és hossza 2 hatványa legyen, így a képet kibővítettem 0 intenzitás értékkel ahol kellett.

[2] Lóczi Lajos2009-05-12 17:54:20

Írj egy pár képletet, kérlek (hogyan van definiálva a -- gondolom diszkrét -- Fourier-transzformációd, hogyan van a képed reprezentálva, stb.)

Előzmény: [1] athon, 2009-05-12 17:41:11
[1] athon2009-05-12 17:41:11

Kérdésem a következő: Mi történik ha veszem egy kép Fourier transzformáltját és a képet elforgatom? Azaz, mit kell csinálnom a frekvencia térben, hogy az inverz Fourier transzformáció az eredeti kép alpha szöggel való elforgatottját adja vissza?