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