色空間の変換(RGBからLab)をまだご覧になっていないかたは、先にそちらをご覧ください。
xyYの値をSRGBとLabに変換するプログラムです。
サンプルデータをページの末尾からダウンロードできます。各行がxyYのデータに相当します。
dataFileName = 'xyYData.csv'; % 各行のデータは、x, y, Y の順番です。colData = csvread(dataFileName);XYZdata = xyYToXYZ(transpose(colData));origSRGB = XYZToSRGBPrimary(XYZdata/100); % 100で割るのがポイントsRGB = SRGBGammaCorrect(origSRGB, 0); % ガンマ補正illuminant = transpose([0.96422 1.00000 0.82521]); % Labの光源 D50
Lab = XYZToLab(XYZdata/100, illuminant); % XYZ -> Lab空間への変換
[pathstr, fileName, exqt] = fileparts(dataFileName); % 拡張子を取り除いたファイル名を取得。csvwrite([fileName '-SRGB.csv'], transpose(sRGB));csvwrite([fileName '-Lab.csv'], transpose(Lab));