Matlab將圖像存儲爲三維數組。前兩個維度對應於上述圖片軸上的數字。每個像素由圖像第三維中的三個條目表示。三層中的每一層代表像素陣列中的紅色,綠色和藍色的強度。爲什麼紅,綠,藍分離的圖像通道是灰度級的(Matlab)?
redChannel = rgbImage(:, :, 1);
greenChannel = rgbImage(:, :, 2);
blueChannel = rgbImage(:, :, 3);
如果顯示紅,綠,藍色通道,你得到這些灰度化圖像,我們可以通過提取出的圖像的獨立的紅綠藍分量:
如果您將其中一個通道與兩個黑色矩陣(零矩陣)連接起來,您將獲得彩色圖像。讓我們串接與黑色圖像矩陣的每個通道的剩餘通道:
blackImage = uint8(zeros(rows, columns));
newRedChannel = cat(3, redChannel, blackImage, blackImage);
newGreenChannel = cat(3, blackImage, greenChannel, blackImage);
newBlueChannel = cat(3, blackImage, blackImage, blueChannel);
爲什麼它以這種方式工作?爲什麼每種顏色的單獨通道必須與零矩陣(黑色圖像)連接起來才能顯示剩餘通道?爲什麼個別頻道的色彩實際上只是單獨顯示的灰度圖像?