web-dev-qa-db-fra.com

Lire l'image en niveaux de gris opencv 3.0.0-dev

J'essaie de lire les images directement en noir et blanc.

J'ai récemment mis à jour ma version d'OpenCv vers 3.0.0-dev, et le code que j'ai utilisé auparavant ne fonctionne plus.

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

fonctionne bien pour 2.4 mais ne fonctionne pas pour la nouvelle version, car il n'y a pas de champ CV_LOAD_IMAGE_GRAYSCALE.

Aucune suggestion?

Remarque: je sais que cv2.imread(f,0) fonctionnera, mais je n'aime pas avoir des constantes sans nom dans mon code. Merci!

31
elaRosca

Le drapeau a été renommé en cv2.IMREAD_GRAYSCALE. De manière générale, les drapeaux ont maintenant des noms préfixés d'une manière qui se rapporte à la fonction à laquelle ils se réfèrent. (par exemple, les indicateurs imread commencent par IMREAD_, cvtColor les drapeaux commencent par COLOR_, etc.)

42
Aurelius

Essayez ça ça marche pour moi

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)
11
Jibin Mathew