% 定义RGB颜色值 R = 45.75; G = 120.11; B = 62.45;

% 将RGB值转换为0-1范围内的值 R_n = R/255; G_n = G/255; B_n = B/255;

% 定义D65标准光源的白点值 Xn = 95.047; Yn = 100.0; Zn = 108.883;

% 将RGB值转换为XYZ值 if R_n > 0.04045 R_n = ((R_n+0.055)/1.055)^2.4; else R_n = R_n/12.92; end if G_n > 0.04045 G_n = ((G_n+0.055)/1.055)^2.4; else G_n = G_n/12.92; end if B_n > 0.04045 B_n = ((B_n+0.055)/1.055)^2.4; else B_n = B_n/12.92; end X = R_n0.4124 + G_n0.3576 + B_n0.1805; Y = R_n0.2126 + G_n0.7152 + B_n0.0722; Z = R_n0.0193 + G_n0.1192 + B_n*0.9505;

% 计算Lab值 if X/Xn > 0.008856 fx = X^(1/3); else fx = 7.787X/Xn + 16/116; end if Y/Yn > 0.008856 fy = Y^(1/3); else fy = 7.787Y/Yn + 16/116; end if Z/Zn > 0.008856 fz = Z^(1/3); else fz = 7.787Z/Zn + 16/116; end L = 116fy - 16; a = 500*(fx - fy); b = 200*(fy - fz);

% 输出结果 fprintf('Lab值为: L=%.2f, a=%.2f, b=%.2f\n', L, a, b);

RGB转Lab颜色空间:Matlab代码实现及详解

原文地址: https://www.cveoy.top/t/topic/nYuR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录