1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Mitglieder
  3. ChrisLee

Beiträge von ChrisLee

  • Fouriertransformation mit Bitmap

    • ChrisLee
    • 2. Mai 2006 um 15:21

    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
    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);
    bitmapUtil_1.SetPixel(pixelValue);
    bitmapUtil_1.IncYPos();

    loopVar++;
    }
    bitmapUtil_1.IncXPos();
    }
    bitmapUtil_1.End();
    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

Rechtliches

Impressum

Datenschutzerklärung