2016-03-29 8 views
3

Ich habe eine Frage darüber, wie man einen Pixelwert in einem Bild erzielen kann.Wie man einen Pixelwert in einem Mat-Bild ausdruckt

Zum Beispiel: Ich habe Bild und Größe ist 10 * 10, ich möchte den Pixelwert in Zeile 5 und Spalte 5 in das Bild, hier ist, was ich code.

Mat img; 
cout << img.at<uchar>(5,5) << endl; 

Aber das Ergebnis ist in der folgenden Abbildung enter image description here

Ich frage mich, warum es so seltsames Symbol druckt?

Kann mir jemand helfen? Danke vielmals!!!!

+0

Wenn Ihr Bild 3 Kanäle, die Sie brauchen 'cv :: Vec3b' statt' 'uchar' – DimChtz

+0

cout << int (img.at (5 , 5)) << endl; ' – Miki

Antwort

3

Sie drucken Char-Wert. Daher wird der Wert in ANSI-Darstellung dieses Werts übersetzt. Wenn Sie eine Zahl sehen möchten, werfen Sie das Ergebnis:

static_cast<int>(img.at<uchar>(5,5)) 
+0

Toller Fund J. Marek, aber Ihre erste Lösung war falsch, es würde das Pixel mit anderen Pixeln mischen. – ypnos