AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Toleranzen von Farben
Thema durchsuchen
Ansicht
Themen-Optionen

Toleranzen von Farben

Ein Thema von BAMatze · begonnen am 14. Mai 2009 · letzter Beitrag vom 14. Mai 2009
Antwort Antwort
Seite 2 von 2     12   
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#11

Re: Toleranzen von Farben

  Alt 14. Mai 2009, 11:13
Deine Funktion sieht natürlich schöner aus, weil man die Farbe wechseln kann @DeddyH. Hab hier auch mal eine Funktion geschrieben gehabt, war schon fast fertig, als ich deine Post gesehen hab.

Hier mal meine Funktion:

Delphi-Quellcode:
procedure TForm1.Bildanalyse;
var i, j, AnzahlSchwPixel, PosOben, PosUnten, PosRechts, PosLinks, Anz, RefRValue,
    RefGValue, RefBValue, PCRValue, PCGValue, PCBValue: integer;
begin
  AnzahlSchwPixel := 0; //Anzahl der gefundenen schwarzen Pixel
  Anz := 0; // Anzahl der Schleifendurchgänge (reiner Kontrollwert für mich)
  // die Positionen für Unten und Rechts werden negativ gesetzt, da beim finden einer
  // dieser Grenzen immer ein positiver Wert eingetragen wird
  PosUnten := -1;
  PosRechts := -1;
  // die Psoitionen für Oben und Links werden übernatürlich groß gewählt, da somit eine
  // einfachere Prüfung durchgeführt werden kann.
  PosOben := 999;
  PosLinks := 999;
  Memo1.Clear;
  for i := 1 to FprivBMP.Width do
    begin
      for j := 1 to FprivBMP.Height do
        begin
          Anz := Anz + 1; // Kontrollwert erhöhen
          PCRValue := GetRValue(FprivBMP.Canvas.Pixels[i,j]);
          PCGValue := GetGValue(FprivBMP.Canvas.Pixels[i,j]);
          PCBValue := GetBValue(FprivBMP.Canvas.Pixels[i,j]);
          Memo1.Lines.Add('R ' + inttostr(PCRValue) + ',G ' + inttostr(PCGValue) + ', B ' + inttostr(PCBValue));
          if (PCRValue < 10) and
             (PCGValue < 10) and // Hier gehe ich jetzt mal davon aus, dass man den Wert der Farbe clBlack weiß.
             (PCBValue < 10) then
            begin
              AnzahlSchwPixel := AnzahlSchwPixel + 1;
              if j < PosOben then PosOben := j;
              if i > PosRechts then PosRechts := i;
              if j > PosUnten then PosUnten := j;
              if i < PosLinks then PosLinks :=i;
            end;
        end;
    end;
  Lbl_Oben.Caption := inttostr(PosOben);
  Lbl_Unten.Caption := inttostr(PosUnten);
  Lbl_Rechts.Caption := inttostr(PosRechts);
  Lbl_Links.Caption := inttostr(PosLinks);
  Lbl_Anzahl.Caption := inttostr(AnzahlSchwPixel);
  Lbl_Anz.Caption := inttostr(Anz);
end;
Funktioniert auch eignentlich gut. Nur PErformance ist aufgrund des Memos nicht so toll.
2. Account Sero
  Mit Zitat antworten Zitat
Benutzerbild von markus5766h
markus5766h

Registriert seit: 5. Mär 2009
Ort: Hamburg
569 Beiträge
 
Delphi XE8 Professional
 
#12

Re: Toleranzen von Farben

  Alt 14. Mai 2009, 11:39
Hallo,
"Funktioniert auch eignentlich gut. Nur PErformance ist aufgrund des Memos nicht so toll."

speicher Deine Werte doch erst einmal nicht visuell (z.B. StringList, Array ...) und
kopiere die erhaltenen Werte nach Abarbeitung der Schleifen in Dein Memo.
Markus H.
  Mit Zitat antworten Zitat
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: Toleranzen von Farben

  Alt 14. Mai 2009, 12:30
Zitat von markus5766h:
Hallo,
"Funktioniert auch eignentlich gut. Nur PErformance ist aufgrund des Memos nicht so toll."

speicher Deine Werte doch erst einmal nicht visuell (z.B. StringList, Array ...) und
kopiere die erhaltenen Werte nach Abarbeitung der Schleifen in Dein Memo.
Das Memo war ja eigentlich nur mal gedacht, dass ich mir anschauen kann, welche Werte er überhaupt findet. Also kann eigentlich ganz raus fliegen und dann sollte das mit der Performance ok sein.
2. Account Sero
  Mit Zitat antworten Zitat
HeinzJ

Registriert seit: 17. Aug 2007
Ort: Bremen
84 Beiträge
 
Delphi 2007 Architect
 
#14

Re: Toleranzen von Farben

  Alt 14. Mai 2009, 12:32
Würde nicht schon ein einfacher Bitmap-Vorher/Bitmap-Nacher Vergleich ausreichen ?
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#15

Re: Toleranzen von Farben

  Alt 14. Mai 2009, 15:49
Mal eine kleine Unwichtigkeit am Rande: Was möchtest du am Ende überhaupt erreichen?
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:46 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