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

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

  • 36
    点赞
  • 141
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值