10 Stimmen

Erkennung von Graustufenbildern mit .Net

Ich scanne Dokumente in JPG-Bilder. Der Scanner muss alle Seiten in Farbe oder alle Seiten in Schwarz-Weiß scannen. Da viele meiner Seiten farbig sind, muss ich alle Seiten in Farbe scannen. Nach dem Scannen möchte ich die Bilder mit .Net untersuchen und versuchen zu erkennen, welche Bilder schwarz-weiß sind, damit ich diese Bilder in Graustufen umwandeln und Speicherplatz sparen kann.

Weiß jemand, wie man ein Graustufenbild mit .Net erkennt?

Bitte lassen Sie es mich wissen.

1 Stimmen

Die Überprüfung des Bildtyps wird nicht ausreichen, da dieser auf 24 oder 32 Bit eingestellt ist (da Sie in Farbe scannen). Wahrscheinlich müssen Sie jedes einzelne Pixel überprüfen. Wenn R == G == B in allen Pixeln ist, handelt es sich um ein Graustufenbild, andernfalls ist es wahrscheinlich ein Farbbild.

1 Stimmen

Ein Gedanke: Auch wenn der Scanner theoretisch R == G == B liefert, ist es möglich, dass es bei der JPEG-Kompression einige Pixel gibt, bei denen dies nur fast der Fall ist? Bedenken Sie, dass JPEG ein verlustbehafteter Komprimierungsalgorithmus ist. Vielleicht nimmt sich JPEG einige Freiheiten bei den Farben der nahegelegenen Pixel. Aber ich gestehe, ich bin kein JPEG-Experte. Aber ich würde wissen wollen, wie es funktioniert, bevor ich mich auf R == G == B verlasse.

0 Stimmen

Ja, ich würde mich nur ungern auf genau r==g==b verlassen, denn selbst wenn jpg keine Verfälschungen vornimmt (und ich wette, das tut es), müssten Ihr Scanner und Ihr Original ebenfalls perfekt sein, was ich in vielen Fällen für unwahrscheinlich halte.

0voto

Fiach Reid Punkte 4638

Ich denke, dass dieser Ansatz sollte die wenigsten Code erfordern, es ist auf jpegs getestet. bImage unten ist ein Byte-Array.

 MemoryStream ms = new MemoryStream(bImage);
 System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms);
 if (returnImage.Palette.Flags == 2)
 {
      System.Diagnostics.Debug.WriteLine("Image is greyscale");
 }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X