需要将rgb模式图片转换到lab模式图片,在网上找了好多公式都不对,后来发现变换矩阵的问题。该函数计算的几个与matlab和photoshop都对比过,非常接近。

int RgbTOLab(InputData * Inbuffer,double * Outbuffer, int width,int height)

{
int iWidth,iHeight;
iWidth = width;
iHeight = height;

double R,G,B;
double l,a,b;
double x,y,z;
double fx,fy,fz;

for (int i = 0; i < iHeight; i++ )
{
for (int j = 0; j < iWidth; j++ )
{
B = Inbuffer[i*iWidth*3 + 3*j + 0];
G = Inbuffer[i*iWidth*3 + 3*j + 1];
R = Inbuffer[i*iWidth*3 + 3*j + 2];

// B = 75.08; G = 165.51; R = 77.51;//??
// B =111.91; G=254.83;R = 254.70;
B = B/255;G = G/255;R = R/255;

if(B<0.04045)
{
B = B/12.92;
}
else
{
B = pow(((B+0.055)/1.055),2.4);
}

if(R<0.04045)
{
R = R/12.92;
}
else
{
R = pow(((R+0.055)/1.055),2.4);
}

if(G<0.04045)
{
G = G/12.92;
}

else
{
G = pow(((G+0.055)/1.055),2.4);
}
/* x = 0.412453*R + 0.357580*G + 0.180423*B;
y = 0.212671*R + 0.715160*G + 0.072169*B;
z = 0.019334*R + 0.119193*G + 0.950227*B;*/
/* x = x/ 0.950456;
y = y;
z = z/1.088754;*/
x = 0.436052025*R + 0.385081593*G + 0.143087414*B;
y = 0.222491598*R + 0.716886060*G + 0.060621486*B;
z = 0.013929122*R + 0.097097002*G + 0.714185470*B;
x = x/0.964221032;
y = y/1;
z = z/0.825211594;

if(y>0.008856)
{
fy = pow(y,1.0/3.0);
l = 116.0*fy-16.0;
}else
{
fy = 7.787*y + 16.0/116.0;
l = 903.3*y;
}

if(x>0.008856)
{
fx = pow(x,1.0/3.0);
}else
{
fx = 7.787*x + 16.0/116.0;
}

if(z>0.008856)
{
fz = pow(z,1.0/3.0);
}else
{
fz = 7.787*z + 16.0/116.0;
}
a = 500.0*(fx-fy);
b = 200.0*(fy-fz);

Outbuffer[i*iWidth*3 + 3*j + 0] = l;
Outbuffer[i*iWidth*3 + 3*j + 1] = a;
Outbuffer[i*iWidth*3 + 3*j + 2] = b;
}
}
return SITSC_OK;
}

RGB模式转换为LAB模式相关推荐

  1. python将png图像RGB模式转换为L模式(24位转换为8位)

    我的目的是想要把P模式的图像转换为L模式,那么必须先转换为RGB模式,再转换为L模式. P模式为2位深度,RGB为24位深度,L为8位深度. 以下是转换的代码: im = Image.open(tes ...

  2. 为什么RGB模式印前必须转换为CMYK模式呢?

    1.什么是图像分辨率?为什么强调它? 答:高分辨率的图像比相同尺寸的低分辨率的图像包含的像素多,图像信息也较多,表现细节更清楚,这也就是考虑输出因素确定图像分辨率的一个原因.如一幅图像若用于在屏幕上显 ...

  3. 索引颜色图模式和LAB颜色模式区别

    索引颜色图模式和LAB颜色模式 索引颜色图模式 索引颜色图像是一幅用8位二进制数来描述的图像,即在整幅图像内最多只有28(即256色)种颜色,通常我们用于印刷的计算机图像是24位,共计1670万种颜色 ...

  4. 基于python的图像格式转换(将RGB图像转换为灰度图像)

    1.将RGB图像转换为灰度图像: from PIL import Image I = Image.open('F:\\pycharm\\picture_format\\data\\lena.jpg') ...

  5. RGB颜色空间转LAB

    RGB颜色空间转LAB 第一:LAB颜色空间简介 Lab是由一个亮度通道(channel)和两个颜色通道组成的.在Lab颜色空间中,每个颜色用L.a.b三个数字表示,各个分量的含义是这样的: L分量用 ...

  6. 计算机lab模式适用于,计算机考证二级选择题1

    看看 如果设定了Rollover中某个状态的效果,则 C A.在动画面板上制作的动画适用于所有的Rollover状态 B.动画不能应用在Rollover状态上 C.在动画面板上制作的动画仅适用于当前的 ...

  7. (原创)浅析Lab模式的校色规律2009.07.12

    [转自]http://68ps.5d6d.com/thread-13698-1-2.html 原创)浅析Lab模式的校色规律 (2009.07.12) 一.结论 Lab模式的校色规律:记住图2步和图3 ...

  8. [转]Photoshop Lab模式下保细节修复偏暗人物照片

    原图<?xml:namespace prefix = o /> 最终效果 1.打开原图素材,先来分析一下图片色彩构成:这个照片因为人物(随便拍一张我外甥)穿的上衣是白色,所以在曝光的时候只 ...

  9. 【OpenMv】颜色模式之Lab

    什么是Lab 颜色模式有HSB.RGB.CMYK三种模式,RGB是用于屏幕显示和视频输出,CMYK是用于打印的,HSB是一种直观的观察方法,那Lab颜色模式是干什么的? Lab的全称是CIELAB,有 ...

最新文章

  1. 拜托,别问我什么各种Tree了,干就完事!
  2. 一点一滴培养你的领导气质
  3. 16年寒假随笔(1)
  4. Latent semantic analysis note(LSA)
  5. Leetcode 160 相交链表 (每日一题 20210802)
  6. 全新iPhone“Pro”命名要实锤:新增配色是“原谅色”本色吧?
  7. 这下真“火”了!为涨粉在红绿灯底座上跳舞 两女子被行拘...
  8. Word转换pdf文件之好用的pdf虚拟打印机
  9. kuangbin数学训练1
  10. 免费版的 IDEA 如何使用 Tomcat
  11. mac下Cornerstone显示日志问题 Cound not contact repository to read the latest log entries
  12. 【bug解决】上传图片后,取消这次上传 再次执行上传,上次的图片还存在
  13. leetcode---1728. 猫和老鼠 II
  14. hdu 6357 Hills And Valleys (DP)
  15. 智能PID软件-AVEVA Diagrams设备符号导入
  16. 2021极术通讯-为什么智慧计算如此重要?
  17. IMSI和TMSI的区别
  18. 计算机和遥感哪个专业好啊,遥感科学与技术专业毕业是干什么的
  19. 看图学习VMWare以及常见问题答疑(转)
  20. 警惕“黑洞效应”?汽车芯片的“扩张”和主机厂的“枷锁”

热门文章

  1. 数字机顶盒的技术发展趋势
  2. 计算机管理服务中找不到mysql的服务
  3. 数学分析笔记9:数项级数
  4. php favicon.ico,简单谈谈favicon
  5. php 表格 链接代码,【PHPWord】超链接
  6. HTML实现友好提示框(带尖角的框)
  7. 16.target和currenTarget的区别?
  8. mysql 5.6 企业版特性_总结一下,MariaDB 10(MySQL5.6企业版分支)的主要新特性
  9. Ceph mon_osd_down_out_subtree_limit参数
  10. android触屏音文件地址,Android音视频复习点