Im Zweifel würde ich auf OpenCV vertrauen, aber der Code von @blöderidiot ist nicht allzu zugänglich. Ich hab das so gemacht mit Matlab:Schwachkopp schrieb:Ok nun haben wir schon drei Möglichkeiten
Code:
>> [A,~,~] = imread("test.png");
>> length(unique(A(:)))
ans =
51073
Das kannst du ja relativ leicht prüfen.Schwachkopp schrieb:Ich würde doch darauf tippen, dass etwas mit der Bilddatei nicht stimmt
Jedenfalls klingt für mich weiterhin das Problem so, dass die
scanline
Methode nicht hinreichend verstanden wird. Ich persönlich verstehe die Zeile mit dem Alignment nicht so ganz, ob sich das auf die Zeile als Gesamtheit beziehen soll (ergibt mMn keinen Sinn) oder auf jedes Pixel. Jedenfalls imHo fügt scanline padding bits ein für das Alignment, d.h. scanline
gibt dir mehr bytes zurück als bytesPerLine
dir anzeigt vorab. Jedenfalls so als eine zu testende Theorie.Zweite Theorie:
scanline
gibt dir RGB-Werte aus und die kannst nicht einfach als Grayscale interpretieren.