在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在一些图象处理的程序中,我们经常要在不同的颜色空间操作,而且经常要把各颜色空间的坐标转化到 [0,1] 之间,这就需要知道一些常用颜色空间的坐标范围。 虽然可以通过颜色空间转化的公式推导这些范围,但是不同的颜色空间转换的程序之间总是有细微的差别。 本文记录了 MATLAB 2011b 中用 makecform, applycform 进行转换得到 LAB, LUV, xyY 空间的坐标范围。 代码如下: 1 R = 0:255; 2 3 cxyz = makecform('srgb2xyz'); 4 cs = {'lab', 'uvl', 'xyl'}; 5 c = {makecform('xyz2lab'), makecform('xyz2uvl'), makecform('xyz2xyl')}; 6 max1 = ones(3,3)*(-Inf); min1 = ones(3,3)*Inf; 7 8 for i = 1:length(c) 9 fprintf('%s ...\n', cs{i}); 10 for r = R 11 if mod(r, 8) == 0, fprintf('r=%d...\n',r);end 12 [g b] = meshgrid(R,R); 13 rgb = ([r*ones(2^16,1) g(:) b(:)])/255; 14 xyz = applycform(rgb, cxyz); 15 dest = applycform(xyz, c{i}); 16 tmpmax = max(dest); tmpmin = min(dest); 17 max1(i,:) = max(max1(i,:), tmpmax); 18 min1(i,:) = min(min1(i,:), tmpmin); 19 end 20 end 21 for i = 1:length(cs) 22 fprintf('\n%s:\n', cs{i}); 23 for j = 1:3 24 fprintf('%d: [%.2f, %.2f]\n', j,min1(i,j), max1(i,j)); 25 end 26 end
打印结果如下: lab: uvl: xyl:
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论