Thema: Delphi Bitmap in SW umwandeln

Einzelnen Beitrag anzeigen

rantanplan99
(Gast)

n/a Beiträge
 
#9

Re: Bitmap in SW umwandeln

  Alt 11. Feb 2006, 20:16
Zitat von DocZenith:
, bleibt das bild leider immer schwarz. warum weiß ich leider
nicht. Vielleicht findet ihr den fehler. wäre froh wenn mir jemand helfen könnte.

Delphi-Quellcode:
{ Schwellwert für Bild ermitteln  - Mittelwert }
for y := 0 to Bitmap.height - 1 do
  begin
    yzahl := 1;
    PixelLine := Bitmap.ScanLine[y];
    yzahl := yzahl + y;
    for x := 0 to Bitmap.width - 1 do
    begin
       xzahl := 1;
       xzahl := xzahl + x;
       bildpunkte := bildpunkte + pixelline[x];
    end;
       schwellwert := xzahl * yzahl;
       schwellwert := bildpunkte div schwellwert;
end;
Also der Teil ist kompletter schwachsinn. sorry für die Wortwahl.
aber "yzahl := 1" im for-block macht keinen sinn, das die ja jedesmal wieder auf "1" gesetzt, und damit ist "yzahl := yzahl + y;" immer gleich "1 + y". selbest gilt für xzahl. irgendwie hab ich auch nicht verstanden wofür du xzahl und yzahl überhaupt benötigsts. Für was du "bildpunkte" verwendest weiss ich auch nicht.

das andere ist der "schwellwert" den du in jeder for-schleife von y neu berechnest.

ich vermute das soll den mittleren grauwert des Bildes berechnen. so sollte es klappen:

Delphi-Quellcode:
var
   grauwerte: integer; // integer ist eigentlich schlecht weil es bei entsprechender Bildgröße zu einem Overflow kommen kann!

[...]

{ mittleren Grauwert des Bildes berechnen }
grauwerte := 0;
for y := 0 to Bitmap.height - 1 do
begin
  PixelLine := Bitmap.ScanLine[y];
  for x := 0 to Bitmap.width - 1 do
  begin
    grauwerte := grauwerte + PixelLine[x];
  end;
end;
schwellwert := grauwerte div (Bitmap.height * Bitmap.width);
denke das sollte funktionieren. Ich habe es aber nicht getestet.

rantanplan
  Mit Zitat antworten Zitat