Einzelnen Beitrag anzeigen

brandtson

Registriert seit: 27. Nov 2003
Ort: HH
23 Beiträge
 
Delphi 6 Professional
 
#1

Pixelvalues in einem Kreis lesen

  Alt 12. Jan 2004, 15:59
Hallo alle Miteinander!

Ich versuche gerade mir die Pixelwerte in einem Graustufenbild anzeigen zu lassen und zwar nur diejenigen die von einem Kreis umschlossen sind. An die Werte zu bekommen ist ja mittels Scanline kein Problem, doch wie mache ich Delphi jetzt klar, dass ich nur die Werte aus dem Kreis will? Ich habe da mal ein bischen in der Mathematik geschnüffelt und folgendes gefunden:

Delphi-Quellcode:
procedure tkreis.kreisroi;

var help,help2,i,j,yobererhalbkreis,yuntererhalbkreis: integer;

begin
  setlength(xywerte,breite,hoehe);
  for i:=0 to breite-1 do
  for j:=0 to hoehe-1 do
    xywerte[i,j]:=true;
  for i:=0 to breite-1 do
    begin
      help:= sqr(rd)-sqr(i-x);
      if help>0 then
        begin
          help2:=round(sqrt(help));
          yobererhalbkreis:=y+help2;
          yuntererhalbkreis:=y-help2;
          for j:=0 to hoehe-1 do
            begin
              if j<=yobererhalbkreis then
              if j>=yobererhalbkreis then
                xywerte[i,j]:=false;
            end;
        end;
    end;
    for i:=0 to breite-1 do
    for j:=0 to hoehe-1 do
     if xywerte[i,j]=true then
       begin
         zahler:= zahler+pixelwerte[i,j];
       end;
end;
Das stammt alles von der Formel y=y0 +- sqrt(r²-(x-x0)²)! XYWerte ist ein Array vom Typ wordbool und der Array pixelwerte vom Typ integer gefüllt mit den Werten der einzelnen Pixel.
Ich bekomme als Ergebniss aber immer nur Null. Freue mich über jeden Tip oder Alternativen, die mich davon abhalten meinen Computer zu verhackstücken.

gruß Brandtson
  Mit Zitat antworten Zitat