2014-02-13 53 views
1

我在Python中使用OpenCV。當我通過調用cv2.imread()加載JPG或PNG圖像時,我得到一個2D矩陣,其大小與該圖像的分辨率相同。矩陣中的每個數字在0到255的範圍內。OpenCV圖像表示中值的含義是什麼?

我不明白這個矩陣如何表示圖像。特別是,我期望看到一個3D矩陣,其第三維代表RGB通道。如果像素由一個8位整數表示,那麼整個圖像只能有256種顏色,但顯然不是這樣。

我在這裏錯過了什麼?

回答

2

「imread」默認值的第二個參數爲0,這意味着你的圖像被轉換爲​​8位灰度深度。因此,您將獲得0到255之間的值作爲圖像每個像素的顏色。

試着改變你的電話如下得到一個3通道的彩色圖像:

cv2.imread("yourimage.bmp",1); 
+2

或者更好,而不是使用'1'預定義的常量'cv2.CV_LOAD_IMAGE_COLOR'。這就明確了即使有人不記得該特定標誌的值,也會發生什麼。 –

2

參閱DOC here

Mat src1 = imread(inputImageFilename1.c_str(), 1); # make sure flag > 0