• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

MATLAB中几个颜色空间的坐标范围

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

在一些图象处理的程序中,我们经常要在不同的颜色空间操作,而且经常要把各颜色空间的坐标转化到 [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:
1: [0.00, 100.00]
2: [-79.25, 93.55]
3: [-112.04, 93.40]

uvl:
1: [0.00, 0.46]
2: [0.00, 0.38]
3: [0.00, 1.00]

xyl:
1: [0.00, 0.65]
2: [0.00, 0.60]
3: [0.00, 1.00]

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi XE10编写的《开放式公路收费系统》发布时间:2022-07-18
下一篇:
matlab安装与使用发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap