Ich habe Graustufenbilder von einem ArrayList<System.Windows.Controls.Image>
horizontal auf einem Canvas
ausgelegt. Ihre ImageSource
sind vom Typ System.Windows.Media.Imaging.BitmapImage
.Get Graustufen Bildhöhe ohne Berücksichtigung weißer Pixel
Gibt es eine Möglichkeit, die Höhe jedes Image
in Pixel zu messen, ohne weiße, nicht transparente Pixel zu berücksichtigen Außerhalb des farbigen Teils?
Sagen wir, ich habe eine Image
von Höhe 10
, in der die ganze obere Hälfte weiß ist und die untere Hälfte schwarz ist; Ich müsste 5
bekommen, da es Höhe ist. Wenn Image
das obere dritte schwarze, das mittlere dritte weiße und das untere dritte Schwarz hätte, wäre die Höhe 10
.
Hier ist eine Zeichnung, die die gewünschten Höhen (in blau) von 3 Bildern zeigt:
Ich bin bereit, einen anderen Typ für die Bilder zu verwenden, aber es muss möglich sein, entweder von einem bekommen byte[]
Array zu diesem Typ, oder Image
zu ihm zu konvertieren.
Ich habe die Dokumente auf Image
, ImageSource
und Visual
gelesen, aber ich habe wirklich keine Ahnung, wo ich anfangen soll.
Sie werden ein Histogramm für die Zeilen des Bildes erzeugen wollen, dann das Histogramm analysieren, um die Grenzen der nicht-weißen Pixel zu finden. – Abion47
@ Abion47 Wenn ich ein Histogramm bekommen kann, kann ich wahrscheinlich auch einfach das RGB in jeder Reihe holen und hinzufügen, um zu sehen, ob alles weiß ist. Aber wie bekomme ich solche Daten überhaupt? – Mat
Es hängt davon ab, welchen Objekttyp die 'Quelle' für Ihre Bildsteuerelemente ist. – Abion47