RGB模式转换为LAB模式
需要将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模式相关推荐
- python将png图像RGB模式转换为L模式(24位转换为8位)
我的目的是想要把P模式的图像转换为L模式,那么必须先转换为RGB模式,再转换为L模式. P模式为2位深度,RGB为24位深度,L为8位深度. 以下是转换的代码: im = Image.open(tes ...
- 为什么RGB模式印前必须转换为CMYK模式呢?
1.什么是图像分辨率?为什么强调它? 答:高分辨率的图像比相同尺寸的低分辨率的图像包含的像素多,图像信息也较多,表现细节更清楚,这也就是考虑输出因素确定图像分辨率的一个原因.如一幅图像若用于在屏幕上显 ...
- 索引颜色图模式和LAB颜色模式区别
索引颜色图模式和LAB颜色模式 索引颜色图模式 索引颜色图像是一幅用8位二进制数来描述的图像,即在整幅图像内最多只有28(即256色)种颜色,通常我们用于印刷的计算机图像是24位,共计1670万种颜色 ...
- 基于python的图像格式转换(将RGB图像转换为灰度图像)
1.将RGB图像转换为灰度图像: from PIL import Image I = Image.open('F:\\pycharm\\picture_format\\data\\lena.jpg') ...
- RGB颜色空间转LAB
RGB颜色空间转LAB 第一:LAB颜色空间简介 Lab是由一个亮度通道(channel)和两个颜色通道组成的.在Lab颜色空间中,每个颜色用L.a.b三个数字表示,各个分量的含义是这样的: L分量用 ...
- 计算机lab模式适用于,计算机考证二级选择题1
看看 如果设定了Rollover中某个状态的效果,则 C A.在动画面板上制作的动画适用于所有的Rollover状态 B.动画不能应用在Rollover状态上 C.在动画面板上制作的动画仅适用于当前的 ...
- (原创)浅析Lab模式的校色规律2009.07.12
[转自]http://68ps.5d6d.com/thread-13698-1-2.html 原创)浅析Lab模式的校色规律 (2009.07.12) 一.结论 Lab模式的校色规律:记住图2步和图3 ...
- [转]Photoshop Lab模式下保细节修复偏暗人物照片
原图<?xml:namespace prefix = o /> 最终效果 1.打开原图素材,先来分析一下图片色彩构成:这个照片因为人物(随便拍一张我外甥)穿的上衣是白色,所以在曝光的时候只 ...
- 【OpenMv】颜色模式之Lab
什么是Lab 颜色模式有HSB.RGB.CMYK三种模式,RGB是用于屏幕显示和视频输出,CMYK是用于打印的,HSB是一种直观的观察方法,那Lab颜色模式是干什么的? Lab的全称是CIELAB,有 ...
最新文章
- 拜托,别问我什么各种Tree了,干就完事!
- 一点一滴培养你的领导气质
- 16年寒假随笔(1)
- Latent semantic analysis note(LSA)
- Leetcode 160 相交链表 (每日一题 20210802)
- 全新iPhone“Pro”命名要实锤:新增配色是“原谅色”本色吧?
- 这下真“火”了!为涨粉在红绿灯底座上跳舞 两女子被行拘...
- Word转换pdf文件之好用的pdf虚拟打印机
- kuangbin数学训练1
- 免费版的 IDEA 如何使用 Tomcat
- mac下Cornerstone显示日志问题 Cound not contact repository to read the latest log entries
- 【bug解决】上传图片后,取消这次上传 再次执行上传,上次的图片还存在
- leetcode---1728. 猫和老鼠 II
- hdu 6357 Hills And Valleys (DP)
- 智能PID软件-AVEVA Diagrams设备符号导入
- 2021极术通讯-为什么智慧计算如此重要?
- IMSI和TMSI的区别
- 计算机和遥感哪个专业好啊,遥感科学与技术专业毕业是干什么的
- 看图学习VMWare以及常见问题答疑(转)
- 警惕“黑洞效应”?汽车芯片的“扩张”和主机厂的“枷锁”
热门文章
- 数字机顶盒的技术发展趋势
- 计算机管理服务中找不到mysql的服务
- 数学分析笔记9:数项级数
- php favicon.ico,简单谈谈favicon
- php 表格 链接代码,【PHPWord】超链接
- HTML实现友好提示框(带尖角的框)
- 16.target和currenTarget的区别?
- mysql 5.6 企业版特性_总结一下,MariaDB 10(MySQL5.6企业版分支)的主要新特性
- Ceph mon_osd_down_out_subtree_limit参数
- android触屏音文件地址,Android音视频复习点