www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Computergraphik" - Fouriertransformation
Fouriertransformation < Computergraphik < Praktische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Computergraphik"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Fouriertransformation: Bitmap-Fourier-Transformation
Status: (Frage) überfällig Status 
Datum: 14:44 Di 02.05.2006
Autor: ChrisLee

Aufgabe
Erstellen Sie eine Anwendung, mit der ein Bitmap Fouriertransformiert wird.
Geben Sie das Ergebnis aus.

Hi Liebe Leute,

Ich hab einen Quellcode erstellt, mit dem ein Bitmap mittels diskreter Fouriertransformation in den Frequenzbereich überführt wird.
Allerdings kommen nicht die erwarteten Resultate heraus. Hier der Code (C++ für eine Symbian-Anwendung):

TSize bitmapSize;
bitmapSize = iFbsAusgabeBitmap->SizeInPixels();
TInt pixelValue = NULL;
TReal arg = NULL;
TReal cosArg = NULL;
TReal sinArg = NULL;
TReal realTeil = NULL;
TReal imaginaerTeil = NULL;
TReal pi = 3.141592654;
TInt gesamtWerte = bitmapSize.iWidth * bitmapSize.iHeight;
TBitmapUtil [mm] bitmapUtil_1(iFbsAusgabeBitmap); [/mm]
[mm] bitmapUtil_1.Begin(TPoint(0, [/mm] 0));
TInt loopVar = 0;
for(TInt x = 0; x < bitmapSize.iWidth; x++)
{
for(TInt y = 0; y < bitmapSize.iHeight; y++)
{
arg = 2.0 * pi * ( (double)loopVar / (double)gesamtWerte );
for(TInt k = 0; k < gesamtWerte; k++)
{
Math::Cos(cosArg, ( (double)k * arg) );
Math::Sin(sinArg, ( (double)k * arg) );
realTeil = realTeil + (iPixelArray[k] * cosArg - iPixelArray[k] * sinArg);
imaginaerTeil = imaginaerTeil + (iPixelArray[k] * sinArg + iPixelArray[k] * cosArg);
}
pixelValue = (int)(realTeil + imaginaerTeil);
[mm] bitmapUtil_1.SetPixel(pixelValue); [/mm]
[mm] bitmapUtil_1.IncYPos(); [/mm]
loopVar++;
}
[mm] bitmapUtil_1.IncXPos(); [/mm]
}
[mm] bitmapUtil_1.End(); [/mm]
TInt bitmapHandle = tempBitmap->Handle(); //gibt die Handle-Nummer auf das Bitmap zurück
iFbsAusgabeBitmap->Duplicate(bitmapHandle); //tempBitmap bekommt Handle auf iFbsAusgabeBitmap zugewiesen
DrawNow();

Dazu noch ein paar Worte:
Die zu verarbeitenden Pixelwerte befinden sich im Array "iPixelArray".
"gesamtWerte" ist die gesamte Anzahl Pixel des Bitmaps.
"loopVar" ist der laufende Wert.
Icgh bin mir aber nicht sicher, ob das, was in der folgenden Schleife (k) so richtig ist. Ich habe es einem simplen Beispiel entnommen und ich war mir nicht sicher, ob ich das richtig die Bildverarbeitung umgesetzt haben.
Jeder Hinweis würde helfen.

Gruss und Danke
Christian
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.

        
Bezug
Fouriertransformation: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 15:20 Do 04.05.2006
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Computergraphik"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]