2014-04-28 15 views
16

Sto cercando di leggere le immagini direttamente in bianco e nero.Leggi immagine in scala di grigi opencv 3.0.0-dev

Ho aggiornato la mia versione di OpenCv a 3.0.0-dev e il codice che ho usato prima non funziona più.

img = cv2.imread(f, cv2.CV_LOAD_IMAGE_GRAYSCALE) 

funziona bene per 2.4, ma non funziona per la nuova versione, in quanto non c'è campo CV_LOAD_IMAGE_GRAYSCALE.

Qualche suggerimento?

Nota: so che cv2.imread(f,0) funzionerà, ma non mi piace avere costanti senza nome nel mio codice. Grazie!

+1

Hai provato 'cv2.LOAD_IMAGE_GRAYSCALE'? Immagino che tutti i 'CV_' sono stati rinominati – Micka

+0

Ho provato, non lì. – elaRosca

risposta

21

La flag è stata rinominata cv2.IMREAD_GRAYSCALE. In generale, i flag ora hanno nomi con prefisso in un modo che si riferisce alla funzione a cui si riferiscono. (Ad esempio imread bandiere iniziano con IMREAD_, cvtColor bandiere iniziano con COLOR_, etc.)

+0

Fantastico. Grazie per la spiegazione, probabilmente servirà anche in futuro. – elaRosca

+0

La documentazione deve essere aggiornata di conseguenza: http://docs.opencv.org/trunk/modules/imgcodecs/doc/reading_and_writing_images.html?highlight=imread#Mat imread (const String & filename, int flags) –

6

Prova questa funziona per me

import cv2 
im_gray = cv2.imread('gray_image.png', cv2.IMREAD_GRAYSCALE) 
thresh = 127 
im_bw = cv2.threshold(im_gray, thresh, 255, cv2.THRESH_BINARY)[1] 
cv2.imwrite('blackwhite.png', im_bw) 
Problemi correlati