RGB图像三个分量的理解和显示
生活随笔
收集整理的這篇文章主要介紹了
RGB图像三个分量的理解和显示
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
RGB圖像由格式為M×N×3的三維數組組成,其中的“3”可以理解為三幅M×N的二維圖像(灰度值圖像)。這三幅圖像分別代表R、G、B分量,每個分量的像素點取值范圍是[0,255]。
有兩種方法可以將RGB圖像的三個分量分別顯示出來,但顯示效果不一樣:
- 灰度值顯示法
該方法比較簡單,通過提取R、G、B分量,再分別顯示出來,matlab代碼如下:
顯示結果
- 彩色顯示法
只有當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
總結
以上是生活随笔為你收集整理的RGB图像三个分量的理解和显示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wps的linux文字显示模糊,WPS字
- 下一篇: 2018,程序员生活的两个兴趣爱好