2013-12-09 28 views
0

我知道你可以使用imread將圖像變成一個numpy數組。OpenCV在加載之前檢測圖像文件是否爲彩色

cv2.imread(path,0) 

加載灰度圖像和...

cv2.imread(path,1) 

加載顏色之一。

我可以調用第二個灰度圖像,它返回一個形狀(y,x,3),因此它仍然是彩色圖像的格式,即使它沒有。

在opencv中有一個函數來檢測文件的顏色格式,所以我可以調用正確的imread函數。

回答

1

我假設你正在使用Python,因爲你提到了numpy。

在加載之前,您無法檢查圖像的類型。

保證你有一個灰度圖像最簡單的方法,是使用這樣的事情(如果你想總是有一個灰度):

 if len(im.shape) > 2: 
      im = cv2.cvtColor(im, cv2.cv.CV_RGB2GRAY) 
+0

我希望有2條路線的邏輯根據是否圖像是否是彩色的。使用M4rtini的答案我可以得到bw或彩色圖像,然後我可以使用shape屬性來確定它是否具有顏色。 –

+0

這似乎是我誤解你的問題。然而,答案可能會幫助其他人,所以我認爲最好把它留在這裏。 – Mailerdaimon

+1

結合您的答案提供瞭解決方案。 :) –

相關問題