Читать изображение 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)