Seite 1 von 1

32bit Image mit Opencv2 öffnen

Verfasst: Montag 5. Mai 2014, 12:01
von kl.feigling89
Hallo Community,
ich habe leider das Problem, dass ich mit der OpenCV library kein Bild mit 32bit tiefe laden kann.

Code: Alles auswählen

image = cv2.imread('yellowgrey.png',-1)
print image.shape, image.dtype
Das Bild wird zwar geladen, weißt jedoch erhebliche Fehler auf. Zum Beispiel werden stellen gefärbt die normalerweise Weiß sein sollten.
Außerdem wird es sofort als 8bit Bild konvertiert.

Ich möchte es zwar gerne später in 8bit, jedoch ohne die Fehler.
Habe im Internet für die Funktion dies gefunden:

Code: Alles auswählen

CV_LOAD_IMAGE_ANYDEPTH 
Finde aber nirgends wie man dies verwendet.

Werde späte mal ein Beispielbild hochladen.

Re: 32bit Image mit Opencv2 öffnen

Verfasst: Montag 5. Mai 2014, 13:19
von BlackJack
@kl.feigling89: Bei einem 32-Bit-PNG hat man ein RGBA-Bild mit 8 Bit pro Kanal. 32-Bit pro Kanal kann das Format überhaupt nicht. Wenn Du also so ein 32-Bit-PNG lädst, dann ist ein `dytpe` mit 8 Bit völlig normal und da wurde auch nichts umgerechnet oder umgewandelt.

Ob der Alphakanal noch da ist oder nicht, solltest Du am `shape` sehen, ob die dritte Achse drei oder vier Elemente lang ist.

`CV_LOAD_IMAGE_ANYDEPTH` ist ein Flag-Wert für das zweite Argument der `imread()`-Funktion. Da wo Du -1 übergeben hast.

Was die falschen Farben angeht: Kann das der Alphakanal sein?

Re: 32bit Image mit Opencv2 öffnen

Verfasst: Montag 5. Mai 2014, 13:42
von darktrym
Ich erinnere mich, dass man irgendwo noch den Typ der Daten angeben muss.

Re: 32bit Image mit Opencv2 öffnen

Verfasst: Montag 5. Mai 2014, 14:16
von BlackJack
@darktrym: Da sagt die Dokumentation etwas anderes.

Re: 32bit Image mit Opencv2 öffnen

Verfasst: Montag 5. Mai 2014, 14:58
von darktrym
Doch, da wo die -1 steht:
CV_LOAD_IMAGE_UNCHANGED (<0) loads the image as is (including the alpha channel if present)
CV_LOAD_IMAGE_GRAYSCALE ( 0) loads the image as an intensity one
CV_LOAD_IMAGE_COLOR (>0) loads the image in the RGB format

Re: 32bit Image mit Opencv2 öffnen

Verfasst: Montag 5. Mai 2014, 15:16
von BlackJack
@darktrym: Unter Typ hätte ich jetzt das Bildformat verstanden. Wobei ich jetzt nicht weiss was Du mit der Anmerkung sagen wolltest, denn die -1 *steht* da ja, und ist laut Doku auch der Wert den man haben möchte.