Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bild störungen entfernen (https://www.delphipraxis.net/87068-bild-stoerungen-entfernen.html)

arbu man 22. Feb 2007 21:16


Bild störungen entfernen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hi,

angeregt von diesen Thread versuche ich z.Z. ein kleines Programm zur Erkennung der LED Position zu schreiben.

Mein ALgo sieht bisher so aus:
Delphi-Quellcode:
function PrepareBitmap(src: TBitmap): TBitmap;
var
  x, y: integer;
  P: PRGBTriple;
begin
  result := TBitmap.Create;
  result.Assign(src);
  for y := 0 to result.Height - 1 do begin
    P := result.ScanLine[y];
    for x := 0 to result.Width - 1 do begin
      if
       (P^.rgbtRed < 255)and
       (P^.rgbtGreen = 255)and
       (P^.rgbtBlue = 255)
      then begin
        P^.rgbtRed := 255;
        P^.rgbtGreen := 255;
        P^.rgbtBlue := 255;
      end else begin
        P^.rgbtRed := 0;
        P^.rgbtGreen := 0;
        P^.rgbtBlue := 0;
      end;
      inc(P);
    end;
  end;
end;
Das ergebnis sieht auch nicht schlecht aus(siehe Anhang). Leider sind auf dem Bild noch ein paar Störungen... Meine Frage nun wie kann ich diese kleinen Weißen Bereich verschwinden lassen ? So das nur noch ein Bereich überig bleibt ? Ich habe keine Idee wie ich das machen könnte :wall:

mfg, Björn

SirThornberry 22. Feb 2007 21:19

Re: Bild störungen entfernen
 
suche doch einfach nach dem größten zusammenhängenden weißen teil

arbu man 22. Feb 2007 21:25

Re: Bild störungen entfernen
 
Nur wie mach ich das ? Ist es sinnvoll da Zeilenweise durch zulaufen mit einen Counter für Weiß ? Ober gibt es da bessere Möglichkeiten ?

mfg, Björn

Nicolai1234 22. Feb 2007 21:42

Re: Bild störungen entfernen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab mich jaa uch damit beschätigt und habe das letzendlich so gelöst, dass ich von allen Punkte den Mittelpunkt berechne. Wenn die außerhalb liegenden Stellen klein sind, wäre das damit zu schaffen.

Edit:
Ich komme mit meinem Verfahren auf dieses Ergebnis (siehe Anhang). Wenn man da noch was mit Standardabweichung o.ä. einbauen würde und erstmal alle weit weg liegenden Teile streicht, bekäme man bestimmt vielversprechende Ergebnisse.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz