2012-06-10 19 views
10

Ich versuche, ein 16-Bit-Graustufenbild mit OpenCV 2.4 in Python zu lesen, aber es scheint, es als 8 Bit zu laden.OpenCV - Ein 16-Bit-Graustufenbild lesen

ich tue:

im = cv2.imread(path,0) 
print im 

[[25 25 28 ..., 0 0 0] 
[ 0 0 0 ..., 0 0 0] 
[ 0 0 0 ..., 0 0 0] 
..., 

Wie kann ich es als 16-Bit bekommen?

Antwort

14

Ich habe es herausgefunden. Falls jemand läuft sonst in dieses Problem:

im = cv2.imread(path,-1) 

das Flag auf 0 gesetzt, zu laden, wie Graustufen 8 Bit auf Standard scheint. Einstellung auf -1 lädt das Bild "wie es ist".

2

Ich hatte das gleiche Problem (16-Bit-TIF-Laden als 8-Bit mit cv2.imread). Die Verwendung des Flags -1 hat jedoch nicht geholfen. Stattdessen konnte ich 16-Bit-Bilder mit dem tifffile-Paket laden.

2

Um die Lesbarkeit verwenden das Flag cv2.IMREAD_ANYDEPTH

image = cv2.imread(path, cv2.IMREAD_ANYDEPTH) 
zu verbessern