资源简介
本代码实现了rgb颜色空间到luv颜色空间的转换
代码片段和文件信息
%此程序将RGB装换到LUV
%原理是先将图像由RGB空间变换到CIEXYZ空间,
%再由CIEXYZ空间变换到Luv空间
%作者:Genghis_Yang
%E-mail: yangcheng2503@163.com
function [ luv ] = rgb2luv( rgb0 )
[m n] = size( rgb0 );
rgb = double( rgb0 );
luv = rgb;
X0 = (0.607+0.174+0.201);
Y0 = (0.299+0.587+0.114);
Z0 = ( 0.066+1.117);
% Y0 = 1.0
u20 = 4*X0/(X0+15*Y0+3*Z0);
v20 = 9*Y0/(X0+15*Y0+3*Z0);
for i=1:m
for j=1:3:n
if (rgb(ij)<=20)
r=8.715e-4*rgb(ij);
else
r=power((rgb(ij)+25.245)/280.2452.22);
end
if (rgb(ij+1)<=20)
g=8.715e-4*rgb(ij+1);
else
g=power((rgb(ij+1)+25.245)/280.2452.22);
end
if (rgb(ij+2)<=20)
b=8.715e-4*rgb(ij+2);
else
b=power((rgb(ij+2)+25.245)/280.2452.22);
end
X = 0.412453*r + 0.357580*g + 0.180423*b;
Y = 0.212671*r + 0.715160*g + 0.072169*b;
Z = 0.019334*r + 0.119193*g + 0.950227*b;
if (X==0.0 && Y==0.0 && Z==0.0)
x=1.0/3.0;
y=1.0/3.0;
else
den=X+Y+Z;
x=X/den;
y=Y/den;
end
den=-2*x+12*y+3;
u2=4*x/den;
v2=9*y/den;
if (Y>0.008856)
luv(ij)=(116*power(Y1.0/3.0)-16);
else
luv(ij)=903.3*Y;
end
luv(ij+1)=13*luv(ij)*(u2-u20);
luv(ij+2)=13*luv(ij)*(v2-v20);
end
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1456 2009-05-15 00:42 rgb2luv.m
----------- --------- ---------- ----- ----
1456 1
- 上一篇:OpenCPN图文编译教程
- 下一篇:elsevier三区投稿模板.doc
评论
共有 条评论