14 RGB和YCbCr顏色模型

2021-09-24 19:09:52 字數 3554 閱讀 2366

rgb顏色模型就是用紅(r)、綠(g)、藍(b)三種顏色的混合,從而實現各種顏色的表示。混合得到的顏色如下圖所示:

可以看出用不同的顏色進行混合,可以得到其他的色彩。三種顏色同時存在時得到的是白色,一種色彩都沒的時候得到的是黑色。

在matlab中為了實現這種顏色,我們用三張二維影象來表示每乙個顏色,即三張圖分別表示r、g、b。將三張圖重合到一塊,便可以得到一張彩色的影象,通過在每張圖上相同位置的畫素點給定不同大小的值,從而混合得到不同的顏色。

下圖表示了一張 rgb 影象的資訊。

工作區的值 557×1027×3 表示這是一張寬×長為 557×1027 的,後面的 3 表示有三個維度,就是由下圖右側的三張分別代表 r、g、b顏色分量的組成,三張分量長寬相同,這三張重疊,構成了該rgb彩色影象。unit8 表示每張分量的每個畫素點的值都是由 8 位表示,即取值為 0-255 。每一張分量都是 8 位的灰度圖。

在影象分割中我們用括號可以切割出指定區域的影象,對於三維影象,我們可以從三個維度進行切割,從而得到彩色的影象。下圖展示了將一張圖的r、g、b分量分別切割出來並顯示。可以看出每張分量都是一維的灰度圖。這篇文章講述了括號切割影象的用法

'r分量');

subplot(1,

3,2)

,imshow(image_g)

,title(

'g分量');

subplot(1,

3,3)

,imshow(image_b)

,title(

'b分量'

);下面將演示用matlab的矩陣建立一張如下所示的rgb影象:

首先建立乙個大小為300×300的每個位置的值都是0的矩陣,這裡用到函式

m = zeros(width, height)

;

建立width×height的矩陣,元素的值全部為0

然後用括號表示式選擇上面的前100行,賦值為 255,用這張圖表示紅色分量的圖

再建立第二張300×300的影象,將中間100行的元素置為255,用這張圖表示綠色分量的圖

再建立第三張300×300的影象,將下面100行的元素置為255,用這張圖表示綠色分量的圖

將這三張圖用cat函式重疊到一塊就形成了一張彩色rgb圖

前面的這篇文章介紹了cat的用法

cat函式的第乙個引數為 3 時表示將後面的若干張按順序從前向後重疊到一塊。

該例**和效果為:

;我們曾經使用過函式rgb2gray將彩色影象轉換為灰度圖,該函式就是用將不同權重的r、g、b分量的每個畫素點的值相加得到的,轉換的公式為:0.2989 * r + 0.5870 * g + 0.1140 * b 。

ycbcr顏色模型,y表示亮度分量(展示亮度資訊),cb表示藍色分量差,cr表示紅色分量差,一張ycbcr彩色圖也是由這三張分量圖表示,對任意的rgb影象,可以使用函式

ycbcr_image = rgb2ycbcr(rgb_image)

;

將rgb轉化為ycbcr。

下圖展示了將rgb影象轉為ycbcr並顯示新影象,然後將ycbcr的每個分量都分離出來,分別展示。

可以看到直接用imshow展示ycbcr會改變原圖的顏色,因為imshow只支援rgb顏色模型和索引影象,所以會出現偏離原色。下面的三張圖展示了ycbcr的三個分量,從工作區可以看到,每個分量也是一張 8 位的灰度圖。由於人的膚色分布在140該例**為:

'ycbcr影象');

fy_y=fy(:,

:,1)

;fy_cb=fy(:,

:,2)

;fy_cr=fy(:,

:,3)

;figure;

subplot(1,

3,1)

,imshow(fy_y)

,title(

'亮度資訊y');

subplot(1,

3,2)

,imshow(fy_cb)

,title(

'藍色分量差cb');

subplot(1,

3,3)

,imshow(fy_cr)

,title(

'紅色分量差cr'

RGB與YCbCr顏色空間的轉換

y 明亮度 luminance或luma 也就是灰階值。亮度 是透過rgb輸入訊號來建立的,方法是將rgb訊號的特定部分疊加到一起。u v 色度 chrominance或chroma 作用是描述影像色彩及飽和度,用於指定畫素的顏色。色度 則定義了顏色的兩個方面 色調與飽和度,分別用cr和cb來表示。...

RGB與YCbCr顏色空間的轉換

y 明亮度 luminance或luma 也就是灰階值。亮度 是透過rgb輸入訊號來建立的,方法是將rgb訊號的特定部分疊加到一起。u v 色度 chrominance或chroma 作用是描述影像色彩及飽和度,用於指定畫素的顏色。色度 則定義了顏色的兩個方面 色調與飽和度,分別用cr和cb來表示。...

RGB與YCbCr顏色空間的轉換

原文 公式如下 數字rgb與ycbcr顏色空間轉換的精度 在這兩個公式中rgb和ycbcr各分量的值的範圍均為0 255。rgb轉換為ycbcr 這個公式來自 genesis microchip.gm6010 gm6015 programming guide m california us gene...