`
xiaoer_1982
  • 浏览: 1865328 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

rgb2lab代码转换

阅读更多
另外一个例子,来自:http://users.rsise.anu.edu.au/~luke/cvcourse_files/labs/RGB2Lab.m
function [L,a,b] = RGB2Lab1(R,G,B)
% function [L, a, b] = RGB2Lab(R, G, B)
% RGB2Lab takes matrices corresponding to Red, Green, and Blue, and
% transforms them into CIELab. This transform is based on ITU-R
% Recommendation BT.709 using the D65 white point reference.
% The error in transforming RGB -> Lab -> RGB is approximately
% 10^-5. RGB values can be either between 0 and 1 or between 0 and 255.
% By Mark Ruzon from C code by Yossi Rubner, 23 September 1997.
% Updated for MATLAB 5 28 January 1998.

if (nargin == 1)
B = double(R(:,:,3));
G = double(R(:,:,2));
R = double(R(:,:,1));
end

if ((max(max(R)) > 1.0) | (max(max(G)) > 1.0) | (max(max(B)) > 1.0))
R = R/255;
G = G/255;
B = B/255;
end

[M, N] = size(R);
s = M*N;

% Set a threshold
T = 0.008856;

RGB = [reshape(R,1,s); reshape(G,1,s); reshape(B,1,s)];

% RGB to XYZ
MAT = [0.412453 0.357580 0.180423;
0.212671 0.715160 0.072169;
0.019334 0.119193 0.950227];
XYZ = MAT * RGB;

X = XYZ(1,:) / 0.950456;
Y = XYZ(2,:);
Z = XYZ(3,:) / 1.088754;

XT = X > T;
YT = Y > T;
ZT = Z > T;

fX = XT .* X.^(1/3) + (~XT) .* (7.787 .* X + 16/116);

% Compute L
Y3 = Y.^(1/3);
fY = YT .* Y3 + (~YT) .* (7.787 .* Y + 16/116);
L = YT .* (116 * Y3 - 16.0) + (~YT) .* (903.3 * Y);

fZ = ZT .* Z.^(1/3) + (~ZT) .* (7.787 .* Z + 16/116);

% Compute a and b
a = 500 * (fX - fY);
b = 200 * (fY - fZ);

L = reshape(L, M, N);
a = reshape(a, M, N);
b = reshape(b, M, N);

if ((nargout == 1) | (nargout == 0))
L = cat(3,L,a,b);
end
分享到:
评论

相关推荐

    rgb2lab程序matlab实现RGB到LAB转换

    这个`rgb2lab`函数首先检查输入RGB值是否在0-1范围内,然后依次执行线性化、XYZ转换和Lab转换。注意,MATLAB中的`xyz2lab`函数已经内置了D65标准观察者的考虑。 在实际应用中,你可能需要根据具体需求调整这个函数...

    RGB2Lab_rgb转lab色彩通道matlab算法_

    RGB2Lab_rgb转lab色彩空间转换在图像处理和计算机视觉领域是常见的操作,尤其是在颜色校正、图像分析和视觉效果增强中。MATLAB作为一种强大的数值计算和数据可视化工具,提供了丰富的函数库支持这类颜色空间转换。...

    rgb2lab颜色空间转换的MATLAB代码

    在MATLAB中,颜色空间转换通常涉及调用内置的`rgb2lab`函数,但自定义实现可以帮助理解转换过程。 RGB到Lab的转换大致分为以下步骤: 1. **线性化RGB值**:由于标准RGB值是非线性的,首先需要对其进行伽马校正,使...

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

    `ColorTransform`可能是包含这些转换函数的源代码文件,可能包括了线性化、XYZ转换以及Lab转换的函数定义。`www.pudn.com.txt`可能是关于这个转换程序的说明文档或者示例数据。 编写这样的转换程序,需要注意以下几...

    RGB和Lab相互转换

    下面是一段简单的MATLAB代码示例,演示如何进行RGB到Lab和Lab到RGB的转换: ```matlab % 假设im是RGB图像 im = imread('example.jpg'); % 读取RGB图像 lab_im = rgb2lab(im); % 转换为Lab % 对Lab图像进行一些处理...

    RGB2Lab 转换 DELPHI

    在提供的压缩包文件"RGB2LAB"中,很可能包含了实现这个转换的Delphi源代码。通过查看和分析这段代码,我们可以学习到如何在实际项目中处理颜色空间转换,并理解背后的数学原理。此外,代码中提到的“与PS转换的数值...

    易语言RGB和LAB色彩转换源码

    2. XYZ色彩空间到Lab色彩空间的转换,这一步通常涉及到非线性转换,将XYZ值转换为人类视觉更敏感的L、a、b值。 在易语言中实现这样的转换,需要理解颜色理论和数学公式,并能够将其转化为易语言的语法。由于易语言...

    sRGB2LabOpenCV.rar_RGB转LAB

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

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

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

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

    例如,要将RGB图像转换为Lab,可以使用`rgb2lab`函数: ```matlab % 假设rgb_image是输入的RGB图像矩阵 lab_image = rgb2lab(rgb_image); ``` 同样,要将Lab图像转换回RGB,可以使用`lab2rgb`函数: ```matlab % ...

    易语言源码易语言RGB和LAB色彩转换源码.rar

    本资源提供了关于RGB和LAB色彩模型转换的源代码,这对于理解和实现色彩处理功能非常有帮助。 RGB色彩模型是我们日常生活中最常见的一种颜色表示方式,代表红(Red)、绿(Green)和蓝(Blue)三种基本颜色的组合。...

    易语言RGB和LAB色彩转换

    综上所述,易语言RGB和LAB色彩转换涉及到RGB、XYZ和Hunter Lab色彩空间的相互转换,通过这些转换,开发者可以在不同的色彩系统间灵活地操作颜色数据,满足各种图像处理和显示需求。通过研究提供的源码,我们可以深入...

    将RGB图像转换成LAB颜色空间图像

    将RGB图像转换成LAB颜色空间图像,LAB颜色空间各个颜色分量的自相关性最小。具体转换内容参见matlab源代码

    rgb-lab.rar_rgb转换lab

    2. 然后,通过公式转换为XYZ色彩空间,XYZ是CIE标准观察者下的三刺激值,与RGB有直接的数学关系。 3. 接着,XYZ值被转换为cie-L*a*b*空间,这一步涉及到CIE D65标准光源和CIE 1931标准观察者的色度坐标。 4. 最后,...

    RGB2Lab.rar_cielab_rgb to lab _rgb2lab

    在提供的"RGB2Lab.m"文件中,我们可以看到实现这个转换的MATLAB代码。这段代码将接受RGB值作为输入,并返回相应的CIELab值。通过阅读和理解这个脚本,你可以更深入地了解颜色空间转换的数学原理和实现细节。 总之,...

    Lab2RGB.rar_LAB转换为RGB_lab2rgb_rgb转换为lab_studentokc_suddenly6t1

    matlab下的LAB转换为RGB的代码实例

    rgb.rar_matlab rgb Lab_rgb _rgb-lab_space

    描述中的"rgb to lab code color space"指出这是一个关于代码实现的讨论,涉及特定的编程任务,即编写MATLAB代码来执行颜色空间转换。在MATLAB中,可以使用内置函数`rgb2lab()`来完成这个转换。这个函数接受一个RGB...

    e语言-易语言RGB和LAB色彩转换

    2. **XYZ转换**:将线性化的RGB值通过cieRGB到cieXYZ的色彩空间转换矩阵进行转换。 3. **D65白点校正**:考虑到显示器的色温,可能需要调整XYZ值以匹配D65标准光源。 4. **Lab转换**:最后,使用cieXYZ到cieLab的...

    RGB转Lab.。。。。

    2. 应用XYZ颜色空间的线性转换公式,将RGB转换为XYZ。这涉及到色彩科学中的标准观察者和照明条件。 3. 使用XYZ到Lab的转换公式,计算出Lab值。这个过程包括D65标准光源下的光谱响应函数以及cieLab的特性曲线。 4. ...

    matlab开发-RGB2Lab.zip.zip

    在压缩包“matlab开发-RGB2Lab.zip”中,可能包含了关于如何在MATLAB中实现RGB2Lab转换的示例代码、教程或测试图像。通过解压并查看这些文件,你可以更深入地学习和理解这个过程,并将其应用到自己的项目中。

Global site tag (gtag.js) - Google Analytics