Читать изображение grayscale opencv 3.0.0-dev

Я пытаюсь читать изображения непосредственно как черно-белые.

Недавно я обновил версию OpenCv до 3.0.0-dev, а код, который я использовал ранее, больше не работает.

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

отлично работает для 2.4, но не работает для новой версии, так как нет поля CV_LOAD_IMAGE_GRAYSCALE.

Любые предложения?

Примечание. Я знаю, что cv2.imread(f,0) будет работать, но мне не нравится иметь ненаписанные константы в моем коде. Спасибо!

Ответы

Ответ 1

Флаг был переименован в cv2.IMREAD_GRAYSCALE. Вообще говоря, флаги теперь имеют имена, предваряемые способом, который относится к функции, к которой они относятся. (например, флаги imread начинаются с флагов IMREAD_, cvtColor начинаются с COLOR_ и т.д.)

Ответ 2

Попробуйте это, он работает для меня

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)

Ответ 3

Попробуйте это, у меня это работает каждый раз

import cv2
gray_img = cv2.imread('img.png', 0)
cv2.imshow(gray_img)