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
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Fouriertransformation mit Bitmap

  • ChrisLee
  • 2. Mai 2006 um 15:21
  • Unerledigt
  • ChrisLee
    1
    ChrisLee
    Mitglied
    Punkte
    10
    Beiträge
    1
    • 2. Mai 2006 um 15:21
    • #1

    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

  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung