Matlab将图像存储为三维数组。前两个维度对应于上图轴上的数字。每个像素在图像的第三个维度中由三个条目表示。三个图层中的每一个都代表了像素阵列中红色、绿色和蓝色的强度。我们可以通过以下方式提取出图像的独立红-绿-蓝组件:
redChannel = rgbImage(:, :, 1);
greenChannel = rgbImage(:, :, 2);
blueChannel = rgbImage(:, :, 3);
例如,原始图像如下:
![enter image description here](https://istack.dev59.com/vJnAC.webp)
![enter image description here](https://istack.dev59.com/JP1f7.webp)
blackImage = uint8(zeros(rows, columns));
newRedChannel = cat(3, redChannel, blackImage, blackImage);
newGreenChannel = cat(3, blackImage, greenChannel, blackImage);
newBlueChannel = cat(3, blackImage, blackImage, blueChannel);
为什么要这样做?为什么每个颜色的单独信道必须与零矩阵(黑色图像)连接在一起,以便在显示时着色?为什么单独的颜色信道实际上只是灰度图像(如果单独显示)?