RGB图像三个分量的理解和显示

您所在的位置:网站首页 matlab的cat函数 RGB图像三个分量的理解和显示

RGB图像三个分量的理解和显示

2023-07-15 21:34| 来源: 网络整理| 查看: 265

RGB图像由格式为M×N×3的三维数组组成,其中的“3”可以理解为三幅M×N的二维图像(灰度值图像)。这三幅图像分别代表R、G、B分量,每个分量的像素点取值范围是[0,255]。

有两种方法可以将RGB图像的三个分量分别显示出来,但显示效果不一样:

灰度值显示法 该方法比较简单,通过提取R、G、B分量,再分别显示出来,matlab代码如下: clc; clean all; RGB = imread('baby.bmp'); subplot(2,2,1),imshow(RGB(:,:,1)),title('R分量'); subplot(2,2,2),imshow(RGB(:,:,2)),title('G分量'); subplot(2,2,3),imshow(RGB(:,:,3)),title('B分量'); subplot(2,2,4),imshow(RGB),title('RGB');

显示结果 在这里插入图片描述

彩色显示法

只有当RGB的三个通道同时被赋值时才会显示颜色,如R分量显示出红色,matlab代码如下:

clc; clear all; RGB = imread('baby.bmp'); zeromatrix = zeros(512, 512); %创建一个512×512的零矩阵 RGB_R = cat(3, RGB (:,:,1), zeromatrix , zeromatrix ); RGB_G = cat(3, zeromatrix , RGB (:,:,2), zeromatrix ); RGB_B = cat(3, zeromatrix , zeromatrix, RGB (:,:,3)); subplot(2,2,1),imshow(RGB_R ),title('R分量'); subplot(2,2,2),imshow(RGB_G),title('G分量'); subplot(2,2,3),imshow(RGB_B),title('B分量'); subplot(2,2,4),imshow(RGB),title('RGB');

显示结果 在这里插入图片描述 补充说明上述用到的个别函数:

zeros函数 表达式1:zeros(m, n),表示创建一个m×n的零矩阵; 表达式2:zeros(n),表示创建一个n×n的零矩阵; 相对于零矩阵,ones函数表示创建一个全1矩阵,用法和上述函数类似。cat函数——联结数组 通用表达式:cat(dim, A, B, …); 用cat(num, A, B)作为具体例子进行说明(num=1,2,3),设A=[1 2;3 4],B=[4 5; 6 7] A = 1 2 3 4 B = 4 5 6 7 A_1 = cat(1, A, B):A和B按列连接 A_1 = 1 2 3 4 4 5 6 7 A_2 = cat(2, A, B):A和B按行连接 A_2 = 1 2 4 5 3 4 6 7 A_3 = cat(3, A, B):RGB图像显示分量的matlab代码用到这种用法 A_3(:, :, 1) = 1 2 3 4 A_3(:, :, 2) = 4 5 6 7待继续补充

参考博客

https://blog.csdn.net/rzwangyu/article/details/50981762



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3