我知道你可以使用imread將圖像變成一個numpy數組。OpenCV在加載之前檢測圖像文件是否爲彩色
cv2.imread(path,0)
加載灰度圖像和...
cv2.imread(path,1)
加載顏色之一。
我可以調用第二個灰度圖像,它返回一個形狀(y,x,3),因此它仍然是彩色圖像的格式,即使它沒有。
在opencv中有一個函數來檢測文件的顏色格式,所以我可以調用正確的imread函數。
我知道你可以使用imread將圖像變成一個numpy數組。OpenCV在加載之前檢測圖像文件是否爲彩色
cv2.imread(path,0)
加載灰度圖像和...
cv2.imread(path,1)
加載顏色之一。
我可以調用第二個灰度圖像,它返回一個形狀(y,x,3),因此它仍然是彩色圖像的格式,即使它沒有。
在opencv中有一個函數來檢測文件的顏色格式,所以我可以調用正確的imread函數。
http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html#imread
縱觀名單的標誌可用「-1」(< 0),在第二個輸入參數中應該做你所要求的。 嘗試使用cv2.imread(path,-1)
我假設你正在使用Python,因爲你提到了numpy。
在加載之前,您無法檢查圖像的類型。
保證你有一個灰度圖像最簡單的方法,是使用這樣的事情(如果你想總是有一個灰度):
if len(im.shape) > 2:
im = cv2.cvtColor(im, cv2.cv.CV_RGB2GRAY)
我希望有2條路線的邏輯根據是否圖像是否是彩色的。使用M4rtini的答案我可以得到bw或彩色圖像,然後我可以使用shape屬性來確定它是否具有顏色。 –
這似乎是我誤解你的問題。然而,答案可能會幫助其他人,所以我認爲最好把它留在這裏。 – Mailerdaimon
結合您的答案提供瞭解決方案。 :) –