web-dev-qa-db-ja.com

画像グレースケール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)が機能することは知っていますが、コードに名前のない定数を含めるのは好きではありません。ありがとう!

31
elaRosca

フラグの名前はcv2.IMREAD_GRAYSCALEに変更されました。一般的に言えば、フラグには、参照先の関数に関連する方法でプレフィックスが付けられています。 (例:imreadフラグはIMREAD_で始まり、cvtColorフラグはCOLOR_で始まります。)

42
Aurelius

これを試してみてください

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