yuv空间用matlab,MATLAB圖像處理_YUV與RGB顏色空間互轉

RGB顏色空間

關於RGB顏色空間,相信做圖像處理的人基本都比較熟悉,還是說一下R、G、B三個分量,每個分量各占8位即一個字節,三個分量總共是3個字節,即24bit,三個分量可以組合出不同的顏色,即2^24 種。

所以可以表示出的顏色數遠遠超過了俺們人類可以識別的范圍。每個RGB分量其實都是表示成亮度,當三個相同時,就退化成我們所說的灰度圖了,如三個分量都是0,此時就是黑色,三個分量都是255(8位可以表示的最大值),此時就是白色,下面一張圖可以更形象的描述:

c834261c2db52968c4e4d53da664a85b.jpe

YUV顏色空間

YUV三個分量Y表示(亮度), U 、V代表色度;

關於YUV的解釋看下面一篇文章中的分析,本人不再贅述:

代碼如下:

% BY SCOTT

% RGB2YUV

% Y = 0.299R + 0.587G + 0.114B

% U = -0.147R - 0.289G + 0.436B

% V = 0.615R - 0.515G - 0.100B

%

% YUV2RGB

% R = Y + 1.14V

% G = Y - 0.39U - 0.58V

% B = Y + 2.03U

clear all;

clc;

RGB = imread('test.jpg');

imshow(RGB);

RGB = mat2gray(RGB);

R = RGB(:,:,1);

G = RGB(:,:,2);

B = RGB(:,:,3);

x = size(RGB,1);

y = size(RGB,2);

% RGB2YUV

Y = 0.299*R + 0.587*G + 0.114*B;

U = -0.147*R- 0.289*G + 0.436*B;

V = 0.615*R - 0.515*G - 0.100*B;

YUV = cat(3, Y, U, V);

figure; imshow(YUV);

% YUV2RGB

RGB1 = zeros(size(RGB));

RGB1(:,:,1) = Y + 1.14 * V;

RGB1(:,:,2) = Y - 0.39 * U - 0.58 * V;

RGB1(:,:,3) = Y + 2.03 * U;

figure; imshow(RGB1)

% After YUV to RGB, The Image should same with original image.

運行結果分別如下所示:

轉換前RGB空間

6ddd44b2241f872970a0b2eb339f4fca.jpe

轉換后YUV空間

fc3e9e95389237b1d46123a0e28f14fe.jpe

還原成RGB

6ddd44b2241f872970a0b2eb339f4fca.jpe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值