EDA365电子论坛网

标题: 用MATLAB实现图像的YUV与RGB颜色空间互转 [打印本页]

作者: thinkfunny    时间: 2019-12-13 10:50
标题: 用MATLAB实现图像的YUV与RGB颜色空间互转
: t' q1 Z/ q: E4 d, u% M
RGB颜色空间- K9 p" R0 ~1 j# s8 W) v# a0 U

/ _+ \3 z1 V# P* y( a# D+ f) C% E        关于RGB颜色空间,相信做图像处理的人基本都比较熟悉,还是说一下R、G、B三个分量,每个分量各占8位即一个字节,三个分量总共是3个字节,即24bit,三个分量可以组合出不同的颜色,即2^24 种。
4 n, n/ O- G! Y9 ]1 _' x. V  j1 v
* {! f. g) U/ Y: X8 p       所以可以表示出的颜色数远远超过了俺们人类可以识别的范围。每个RGB分量其实都是表示成亮度,当三个相同时,就退化成我们所说的灰度图了,如三个分量都是0,此时就是黑色,三个分量都是255(8位可以表示的最大值),此时就是白色,下面一张图可以更形象的描述:
4 c# A$ x& v2 `& y* j) H, l
  E9 b1 l3 L5 n0 ? , G- \1 ^! k& y3 N; t- t9 m) B

0 Z# [; E! _" C* v1 C8 o: _0 x/ h4 Q8 i3 P, ^, y( z4 E
YUV颜色空间- r2 q8 @; S  _  E. j) ?3 R  R
+ G/ z6 R5 Y. F# u+ d5 ^
        YUV三个分量Y表示(亮度), U 、V代表色度;- k% n; k! V' @

2 N* K" Y, g+ C        关于YUV的解释看下面一篇文章中的分析,本人不再赘述:
# n1 E* w& u) I7 @) i" l) C5 ?3 }" g' W. |1 c- B% P' _2 j  k
( y  B" Y% v6 ?9 J+ J/ l. y8 y
代码如下:
1 p2 ^* {3 i+ q$ ?1 w, y- ^$ b8 J/ H. R$ m' n
     5 o& V) F9 D" D- @
; n5 i* d* H% j- a1 I6 l; Q
运行结果分别如下所示:+ r- O3 B( I7 W6 {# Z- C8 O3 F
转换前RGB空间
+ H5 l3 r0 i$ q
; [* V' N; D) i8 b) I) s7 T2 D
, u2 T" n( K7 X! X转换后YUV空间
. r8 J2 f6 F/ K! o& f! Y6 o- p# K
8 z& ?2 @! c; y( C6 f6 G: ?  k% E3 B$ p$ h0 E  \& h
还原成RGB! a9 l% \' U! h4 _, P0 D% d
/ b' n- R( X% v

9 ?, n6 b' @& @
0 c  A1 k' f+ L0 O8 S
& l9 Q6 e. }' t' W7 p1 B, u
作者: sharkN    时间: 2019-12-13 19:24
好厉害的技术




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2