我在Python中使用OpenCV。當我通過調用cv2.imread()
加載JPG或PNG圖像時,我得到一個2D矩陣,其大小與該圖像的分辨率相同。矩陣中的每個數字在0到255的範圍內。OpenCV圖像表示中值的含義是什麼?
我不明白這個矩陣如何表示圖像。特別是,我期望看到一個3D矩陣,其第三維代表RGB通道。如果像素由一個8位整數表示,那麼整個圖像只能有256種顏色,但顯然不是這樣。
我在這裏錯過了什麼?
我在Python中使用OpenCV。當我通過調用cv2.imread()
加載JPG或PNG圖像時,我得到一個2D矩陣,其大小與該圖像的分辨率相同。矩陣中的每個數字在0到255的範圍內。OpenCV圖像表示中值的含義是什麼?
我不明白這個矩陣如何表示圖像。特別是,我期望看到一個3D矩陣,其第三維代表RGB通道。如果像素由一個8位整數表示,那麼整個圖像只能有256種顏色,但顯然不是這樣。
我在這裏錯過了什麼?
「imread」默認值的第二個參數爲0,這意味着你的圖像被轉換爲8位灰度深度。因此,您將獲得0到255之間的值作爲圖像每個像素的顏色。
試着改變你的電話如下得到一個3通道的彩色圖像:
cv2.imread("yourimage.bmp",1);
參閱DOC here
Mat src1 = imread(inputImageFilename1.c_str(), 1); # make sure flag > 0
或者更好,而不是使用'1'預定義的常量'cv2.CV_LOAD_IMAGE_COLOR'。這就明確了即使有人不記得該特定標誌的值,也會發生什麼。 –