`
pleasetojava
  • 浏览: 729676 次
  • 性别: Icon_minigender_2
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

rgb与lab互换

 
阅读更多
Mark Ruzon发来的邮件:
代码如下:
===========================rgb2lab.m
  1. function[L,a,b]=RGB2Lab(R,G,B)
  2. %function[L,a,b]=RGB2Lab(R,G,B)
  3. %RGB2LabtakesmatricescorrespondingtoRed,Green,andBlue,and
  4. %transformsthemintoCIELab.ThistransformisbasedonITU-R
  5. %RecommendationBT.709usingtheD65whitepointreference.
  6. %TheerrorintransformingRGB->Lab->RGBisapproximately
  7. %10^-5.RGBvaluescanbeeitherbetween0and1orbetween0and255.
  8. %ByMarkRuzonfromCcodebyYossiRubner,23September1997.
  9. %UpdatedforMATLAB528January1998.
  10. %
  11. %Ifyourimageisloadedintouint8formatasanMxNx3tensor,you
  12. %canpassitinasoneargument.Ifyoubreakitinto3pieces,convert
  13. %themintodoublebeforecallingthisfunction.
  14. if(nargin==1)
  15. B=double(R(:,:,3));
  16. G=double(R(:,:,2));
  17. R=double(R(:,:,1));
  18. end
  19. if((max(max(R))>1.0)|(max(max(G))>1.0)|(max(max(B))>1.0))
  20. R=R/255;
  21. G=G/255;
  22. B=B/255;
  23. end
  24. [M,N]=size(R);
  25. s=M*N;
  26. %Setathreshold
  27. T=0.008856;
  28. RGB=[reshape(R,1,s);reshape(G,1,s);reshape(B,1,s)];
  29. %RGBtoXYZ
  30. MAT=[0.4124530.3575800.180423;
  31. 0.2126710.7151600.072169;
  32. 0.0193340.1191930.950227];
  33. XYZ=MAT*RGB;
  34. X=XYZ(1,:)/0.950456;
  35. Y=XYZ(2,:);
  36. Z=XYZ(3,:)/1.088754;
  37. XT=X>T;
  38. YT=Y>T;
  39. ZT=Z>T;
  40. fX=XT.*X.^(1/3)+(~XT).*(7.787.*X+16/116);
  41. %ComputeL
  42. Y3=Y.^(1/3);
  43. fY=YT.*Y3+(~YT).*(7.787.*Y+16/116);
  44. L=YT.*(116*Y3-16.0)+(~YT).*(903.3*Y);
  45. fZ=ZT.*Z.^(1/3)+(~ZT).*(7.787.*Z+16/116);
  46. %Computeaandb
  47. a=500*(fX-fY);
  48. b=200*(fY-fZ);
  49. L=reshape(L,M,N);
  50. a=reshape(a,M,N);
  51. b=reshape(b,M,N);
  52. if((nargout==1)|(nargout==0))
  53. L=cat(3,L,a,b);
  54. end
==========================================lab2rgb.m
  1. function[R,G,B]=Lab2RGB(L,a,b)
  2. %function[R,G,B]=Lab2RGB(L,a,b)
  3. %Lab2RGBtakesmatricescorrespondingtoL,a,andbinCIELabspace
  4. %andtransformsthemintoRGB.ThistransformisbasedonITU-R
  5. %RecommendationBT.709usingtheD65whitepointreference.
  6. %andtheerrorintransformingRGB->Lab->RGBisapproximately
  7. %10^-5.ByMarkRuzonfromCcodebyYossiRubner,23September1997.
  8. %UpdatedforMATLAB528January1998.
  9. %Fixedabuginconversionbacktouint89September1999.
  10. if(nargin==1)
  11. b=L(:,:,3);
  12. a=L(:,:,2);
  13. L=L(:,:,1);
  14. end
  15. %Thresholds
  16. T1=0.008856;
  17. T2=0.206893;
  18. [M,N]=size(L);
  19. s=M*N;
  20. L=reshape(L,1,s);
  21. a=reshape(a,1,s);
  22. b=reshape(b,1,s);
  23. %ComputeY
  24. fY=((L+16)/116).^3;
  25. YT=fY>T1;
  26. fY=(~YT).*(L/903.3)+YT.*fY;
  27. Y=fY;
  28. %AlterfYslightlyforfurthercalculations
  29. fY=YT.*(fY.^(1/3))+(~YT).*(7.787.*fY+16/116);
  30. %ComputeX
  31. fX=a/500+fY;
  32. XT=fX>T2;
  33. X=(XT.*(fX.^3)+(~XT).*((fX-16/116)/7.787));
  34. %ComputeZ
  35. fZ=fY-b/200;
  36. ZT=fZ>T2;
  37. Z=(ZT.*(fZ.^3)+(~ZT).*((fZ-16/116)/7.787));
  38. X=X*0.950456;
  39. Z=Z*1.088754;
  40. MAT=[3.240479-1.537150-0.498535;
  41. -0.9692561.8759920.041556;
  42. 0.055648-0.2040431.057311];
  43. RGB=max(min(MAT*[X;Y;Z],1),0);
  44. R=reshape(RGB(1,:),M,N)*255;
  45. G=reshape(RGB(2,:),M,N)*255;
  46. B=reshape(RGB(3,:),M,N)*255;
  47. if((nargout==1)|(nargout==0))
  48. R=uint8(round(cat(3,R,G,B)));
  49. end

分享到:
评论

相关推荐

    RGB2Lab_rgb转lab色彩通道matlab算法_

    而Lab色彩空间则是一种接近人类视觉感知的颜色模型,由Lightness(明度)、a*(绿红轴)和b*(蓝黄轴)三个分量构成,旨在提供一个与设备无关的颜色表示方式。 在MATLAB中,进行RGB到Lab的转换通常涉及以下几个步骤...

    rgb2lab程序matlab实现RGB到LAB转换

    RGB到LAB颜色空间转换在图像处理领域中是一个常见的任务,特别是在色彩分析、图像增强和色彩校正等应用中。MATLAB作为一个强大的数值计算和可视化环境,提供了方便的工具来进行这样的转换。下面我们将深入探讨RGB到...

    颜色格式转换RGB转LAB

    在给定的“标签”中提到了jQuery,这是一个流行的JavaScript库,虽然它主要用于DOM操作和事件处理,但可以通过编写自定义函数或与其他JavaScript库结合,实现RGB到LAB的转换。 以下是简单的转换步骤概述: 1. 对RGB...

    rgb2lab_rgb_Lab_

    RGB到Lab色彩空间转换是图像处理中的一个常见操作,它涉及到颜色表示的转换,以便更好地适应人类视觉系统或满足特定的图像处理需求。在RGB色彩空间中,颜色由红(Red)、绿(Green)和蓝(Blue)三种基本颜色的强度...

    RGB到LAB的色域转换程序 c++

    RGB到LAB色域转换在计算机图形学和图像处理领域中是一项基本操作,广泛应用于颜色校正、图像增强以及色彩分析等任务。RGB(红绿蓝)是显示器、摄像机等设备常用的加色模型,而LAB(L*a*b*)色域则更接近人类视觉系统...

    sRGB2LabOpenCV.rar_RGB转LAB

    在MATLAB中,不直接使用OpenCV进行色彩转换也是可行的,MATLAB提供了`rgb2lab`函数,但这个函数可能会按照不同的色域和光照条件工作,与OpenCV的结果可能存在差异。 实际应用中,这种转换在图像增强、色彩分析、...

    rgb2lab颜色空间转换的MATLAB代码

    本主题将深入探讨RGB到Lab颜色空间转换的MATLAB实现,这对于理解图像处理和色彩科学至关重要。 RGB颜色空间是我们最常见的颜色模型,它基于人眼对红、绿、蓝三原色的感知。然而,在某些应用中,如色彩校正、图像...

    颜色空间转换RGB和Lab空间互转

    这是一份RGB与Lab空间转换的代码,代码简洁好用,可以在opencv2中调用

    RGB2Lab.rar_RGB LAB matlab_RGB to Lab matlab_matlab rgb Lab_rgb2

    this matlab code is about translating RGB pixel to Lab pixel

    RGB和Lab相互转换

    此外,Lab空间也常用于图像的色彩分割和特征提取,因为它可以提供与人类视觉感知更一致的颜色距离度量。 总之,RGB和Lab颜色空间的转换在MATLAB中的实现简单易用,但理解它们背后的概念和用途对于提升图像处理技能...

    color_RGB2lab_lab2RGB.rar_Lab RGB_RGB Lab_RGB到lab_lab2rgb_rgb2la

    压缩包中的`lab2rgb.m`和`rgb2lab.m`很可能是两个MATLAB脚本文件,分别实现了Lab到RGB和RGB到Lab的转换函数。MATLAB是一种强大的计算和可视化环境,非常适合处理图像和颜色转换任务。`zzsk.txt`可能是转换算法的说明...

    RGB与LAB转换

    ### RGB与LAB转换 #### 一、色彩空间概念与转换的重要性 色彩空间转换在现代色彩管理领域占据着核心地位,特别是在包装印刷行业中。为了确保从扫描、显示、输出到最终印刷品的颜色保持一致,需要实行标准化、规范...

    Lab-RGB.zip_LAB颜色空间_matlab lab颜色_matlab中rgb转lab_rgb _rgb转换lab

    本篇文章将详细探讨Lab颜色空间以及如何在Matlab环境中进行RGB与Lab之间的转换。 RGB颜色空间是一种加性颜色模型,广泛应用于数字图像和显示器,它基于三种基本颜色——红色、绿色和蓝色的组合。通过调整这三种颜色...

    rgb2lab.rar_rgb2lab

    图像处理中 RGB模型和Lab模型之间的转换

    RGB2Lab 转换 DELPHI

    RGB2Lab转换在图像处理和计算机视觉领域是常见的颜色空间转换操作。RGB(红绿蓝)是一种加性颜色模型,广泛用于显示器、电视等设备,而Lab(L* a* b*)则是一种设备无关的颜色空间,更符合人类视觉感知。这种转换在...

    rgb.rar_matlab rgb Lab_rgb _rgb-lab_space

    Lab颜色空间由于其与人眼感知的匹配,常用于颜色分析和色彩匹配任务。了解如何在MATLAB中进行这种转换对于进行相关的图像处理项目至关重要。通过实践和理解这些基本概念,我们可以更好地操纵和理解图像的颜色特性。

    matlab开发-RGB2Lab

    本主题将深入探讨如何使用MATLAB进行RGB到CIELAB颜色空间的转换,即“RGB2Lab”操作。MATLAB是一种强大的编程环境,特别适合于数值计算和数据分析,包括图像处理。 RGB颜色空间是我们常见的三原色模型,由红色(Red)...

    rgb到lab色彩空间转换

    rgb到lab色彩空间转换,转换快速有效 失真率低

    rgb-lab.rar_rgb转换lab

    标题"rgb-lab.rar_rgb转换lab"表明这个压缩包包含了一个名为"rgb-lab.vi"的虚拟仪器文件,该文件是用来将RGB色彩数据转换为Lab色彩数据的程序。Lab色彩空间由CIE(国际照明委员会)制定,主要用于模拟人类视觉对颜色...

    RGB_Lab.rar_Lab_Lab-RGB_RGB L_RGB Lab_三维

    RGB和Lab是两种不同的颜色空间,它们在计算机图形学和图像处理中有着广泛的应用。RGB颜色空间是我们常见的红绿蓝三原色模型,而Lab颜色空间则是基于人类视觉感知的色彩模型,它更加接近人眼对颜色的感知。 RGB(Red...

Global site tag (gtag.js) - Google Analytics