Einzelnen Beitrag anzeigen

KLS

Registriert seit: 20. Jun 2004
Ort: Berlin
89 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Wie oft kommt eine Farbe in einer Fläche vor

  Alt 9. Feb 2005, 21:19
Ich hab das wie folgt gelösst:

Delphi-Quellcode:
var
  Form1: TForm1;
  Farbarray : array[0..$FFFFFF] of integer;

implementation

{$R *.dfm}

function tform1.zaehlefarben(worin : Timage) : tcolor;
var
  i,i2 : integer;
begin
  for i := 0 to high(farbarray) do farbarray[i] := 0; //alles auf 0 setzen
  for i := 0 to worin.height do for i2 := 0 to worin.width do inc(Farbarray[worin.Canvas.Pixels[i,i2]]); //pixel f. pixel durchgehen und wert im array incrementieren
  result := farbarray[0]; //initialisieren
  for i := 0 to high(farbarray)-1 do if Farbarray[i] < Farbarray[i+1] then result := i+1; //welche zahl ist am grössten?
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  showmessage(ColorToString(zaehlefarben(image1)));
end;

end.
Ein kleines Problem hat die Sache aber, was wenn 2 Farben zufällig gleichoft vorkommen?
Thomas H.
  Mit Zitat antworten Zitat