Konvertieren Sie ein Bitmap-Bild in eine matrix
In C#, ich brauche, um ein Bild zu konvertieren, dass ich bereits konvertiert Bitmap in einer matrix der Größe des Bildes für Breite und Höhe, die aus dem uint8 des Bitmap-Daten. In einem anderen word-Platzierung der Bitmap-Daten in eine matrix konvertieren Sie uint8, so kann ich die Berechnungen, die ich tun soll, auf die matrix-Zeilen und Spalten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Probieren Sie etwas wie dieses:
GetPixel
. Wenn das Bild nicht kleine verwendenBitmap.Lockbits()
und dann Zugriff auf die zugrunde liegenden Daten direkt. Je nach Größe des Bildes kann es auch Sinn machen, verwenden Sie eine spezielle Bibliothek (AForge.Net, Streamwave, OpenCV, IPP ...)Bitmap.Lockbits
, da die nicht nur schneller, sondern gibt Ihnen auchbyte
(wie du sagtest in deiner Frage) und nichtcolor
public Bitmap ConvertToGrayScale(Bitmap source) { Bitmap bm = new Bitmap(source.Width,source.Height); for (int y=0 ; y<bm.Height; y++) { for (int x=0 ; x<bm.Width;x++) { Color c =source.GetPixel(x,y); int luma = (int)(c.R*0.3 + c.G*0.59+c.B*0.11); bm.SetPixel(x,y,Color.FromArgb(luma,luma,luma)); } } return bm; }