matlab颜色空间转换RGB转换到lab

该MATLAB函数将3通道RGB图像转换为Lab颜色空间。首先,检查输入图像是否为3通道,然后进行伽马校正,使用D65标准光源进行XYZ转换,再转换为Lab空间。函数包括辅助函数进行伽马校正和立方根转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

function Image = rgb2lab(Image)
if size(Image,3) ~= 3
     error('im 一定要为3通道颜色图像空间');
 end
 if ~isa(Image,'double')
     Image = double(Image)/255;
 end
 
 R = invgammacorrection(Image(:,:,1));
 G = invgammacorrection(Image(:,:,2));
 B = invgammacorrection(Image(:,:,3));
 
 T = inv([3.2406,-1.5372,-0.4986;-0.9689,1.8758,0.0415;0.0557,-0.2040,1.057])
 Image(:,:,1) = T(1) * R + T(4) * G + T(7) * B %X
 Image(:,:,2) = T(2) * R + T(5) * G + T(8) * B %Y
 Image(:,:,3) = T(3) * R + T(6) * G + T(9) * B %Z
 
 WhitePoint = [0.950456,1,1.088754];
 X = Image(:,:,1)/WhitePoint(1);
 Y = Image(:,:,2)/WhitePoint(2);
 Z = Image(:,:,3)/WhitePoint(3);
 fX = f(X);
 fY = f(Y);
 fZ = f(Z);
 Image(:,:,1) = 116 * fY - 16;%L
 Image(:,:,2) = 500 * (fX - fY);
 Image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值