2014-04-28 218 views
16

我想直接讀取圖像作爲黑色和白色。閱讀圖像灰度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.LOAD_IMAGE_GRAYSCALE'?我想所有'CV_'都改名爲 – Micka

+0

我試過了,不在那裏。 – elaRosca

回答

21

該標誌已更名爲cv2.IMREAD_GRAYSCALE。一般來說,現在標誌的名稱前綴的方式與它們所涉及的功能有關。 (例如,imread標誌與IMREAD_開始,cvtColor標誌開始COLOR_等)

+0

太棒了。感謝您的解釋,可能也會對未來有所幫助。 – elaRosca

+0

文檔應該相應地更新:http://docs.opencv.org/trunk/modules/imgcodecs/doc/reading_and_writing_images.html?highlight=imread#Mat imread(const String&filename,int flags) –

6

試試這個工作對我來說

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)