Fouriertransformation < Computergraphik < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
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.
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:20 Do 04.05.2006 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|