色域映射–l,a,b的线性先后压缩(matlab)

  1. 先对明度L的压缩
C=sqrt(PicA.^2+PicB.^2);
Pc = 1-sqrt(C./(C+5*10^5));
h = size(PicL,1);
w = size(PicL,2);
% 对L通道源色域大于目标色域5%和小于95%的部分不进行处理,对其余部分进行类似线性压缩进目标色域内
for i = 1:hfor j = 1:wif PicL(i,j) >= 0.05*(Lrmax-Lrmin)+Lrmin && PicL(i,j) <= 0.95*(Lrmax-Lrmin)+LrminPicL(i,j) = PicL(i,j);elseif PicL(i,j) < 0.05*(Lrmax-Lrmin)+LrminPicL(i,j) = Lrmin + (PicL(i,j) - Lomin)/(0.05*(Lrmax-Lrmin)+Lrmin - Lomin)*0.05*(Lrmax-Lrmin);elsePicL(i,j) = 0.95*(Lrmax-Lrmin)+Lrmin + (PicL(i,j) - (0.95*(Lrmax-Lrmin)+Lrmin))/(Lomax - (0.95*(Lrmax-Lrmin)+Lrmin))*0.05*(Lrmax-Lrmin);endend
end
%做与彩度有关的明度压缩,能够保持高彩度区域颜色的明度只做少量的压缩,消色区明度做线性压缩,使得图像符合人眼视觉特性
PicL = (1-Pc).*PicL+Pc.*(Lrmax-(max(PicL(:))-PicL)/(max(PicL(:))-min(PicL(:)))*(Lrmax-Lrmin));
  1. 再对彩度a、b的压缩
% % 若彩度小于目标边界的95%则不压缩,若大于95%则采用类似线性压缩的方式压缩彩度
C0=sqrt(MachineA.^2+MachineB.^2);
for i = 1:Heightfor j = 1:Widthif C(i,j) <= 0.95*max(C0(:))C(i,j) = C(i,j);elseC(i,j)=0.95*max(C0)+(C(i,j)-0.95*max(C0))*0.1.*max(C0)./(max(C(:))-0.95*max(C0));p = PicA(i,j)./PicB(i,j);%建立彩度和ab值的对应关系,求出ab(这里是xy)值syms x y;[x,y]=solve(x/y == p,x^2+y^2 == C(i,j)^2,x,y);%xy有正负,按照和源色域ab值的正负号来取xy正负号,并把xy值取整给ab值if PicA(i,j) >= 0x=x(x>=0);elsex=x(x<0);endif PicB(i,j) >=0y=y(y>=0);elsey=y(y<0);endPicA(i,j) = round(x);PicB(i,j) = round(y);endend
end

参考CIE推荐的SGCK和最小色差法

色域映射--L,a,b的线性先后压缩相关推荐

  1. c语言构造一个空线性表l,数据结构线性表顺序结构的定义与实现C语言-Go语言中文社区...

    大家好,今天给大家总结了一下数据结构里面的线性表的顺序结构,顺序表表示的是用一组地址连续的存储单元依次存储线性表的数据元素,所以顺序结构的实现一般采用数组的方式来实现,存储空间也采用动态分配的方式.在 ...

  2. 数据结构之线性表(附代码)

    数据结构 之 线性表(附代码) 线性表思维导图: 线性表定义(逻辑结构): 一.顺序表 1.顺序表思维导图: 2.顺序表的逻辑结构: 3.顺序表基本操作的功能实现: 1.线性表的静态定义: 2.线性表 ...

  3. c语言实现顺序存储程序,线性表的顺序存储结构动态态分配C语言实现

    线性表的顺序存储结构动态态分配C语言实现 线性表的顺序存储结构动态态分配C语言实现 初始化执行期间通过malloc函数为数组申请空间,程序运行期间若空间不够可通过realloc函数在保留原存储值的前提 ...

  4. Chapter4、色调映射的一般方法

    因为这本书对具体方案的原理并不细说,只提了有哪些方法和有哪些效果,类似于综述.因此,我以后也按照综述的方法来写,不细说原理了. 4.1.色调映射的一种一般方法 4.1.1.建模一种通用的色调映射算子 ...

  5. 【计算机视觉与深度学习】线性分类器(一)

    目录 从线性分类器开始 线性分类器的定义 线性分类器的决策步骤 线性分类器的矩阵表示 线性分类器的wiT\bm w_i^TwiT​如何理解 线性分类器的决策边界 线性分类器的损失函数 损失函数的定义 ...

  6. 2.1 Python图像的空域增强处理-灰度映射

    2.1 Python图像的空域增强处理-灰度映射 文章目录 2.1 Python图像的空域增强处理-灰度映射 1 算法原理 2 代码 3 效果 空域增强处理,包括给定变化曲线的灰度映射(求反.动态范围 ...

  7. HDR图片以及色调映射(ToneMapping)

    高动态范围(High-Dynamic Range,简称HDR),相应的,LDR(Low-Dynamic Range),也就是我们常见的8bit存储方式的图片.之前都是在介绍视频方面.但是在高动态图片( ...

  8. 数据结构与算法——线性结构——线性表及其表示

    -"一,线性结构 1.顺序储存结构直接表示 多项式. 1).使用数组来表示多项式.(用数组下标来表示指数,值来表示系数) 可以表示成: 2).使用结构数组来表示.(把系数和指数看成一个二元组 ...

  9. 数据结构和算法:(3)3.1线性表的顺序存储结构

    -----------------------1.线性表基础操作------------------------ 线性表:(List)由零个或多个数据元素组成的有限序列. 首先他是一个序列,元素之间是 ...

最新文章

  1. 百度大脑发挥AI“头雁效应” 王海峰:在AI时代共同推动社会智能化升级
  2. 汇总|Yolo开源项目
  3. python openvc 裁剪、剪切图片 提取图片的行和列
  4. linux打包运行python文件_Linux下安装pyinstaller用于将py文件打包生成一个可执行文件...
  5. elasticsearch api中的Buckets(桶)及Metrics(指标)
  6. 如何对mysql做物理备份_如何创建物理MySQL备份
  7. java float什么类型数据类型_Java中的Float和double数据类型
  8. 解决pip安装模块报错Cannot fetch index base URL http://pypi.python.org/simple/
  9. LeetCode 题 - 58. 最后一个单词的长度 python解答
  10. LA 4794 - Sharing Chocolate dp
  11. DCEP | 农行将上线数字人民币刷脸支付
  12. FLTK学习笔记4-在FLTK中显示图片(上)
  13. 操作系统之银行家算法实现代码
  14. 机器学习 | AHP层次分析法
  15. ssRender引擎
  16. 鼎捷APS助力茶花家居实现智能高效生产排程
  17. Docker-centos安装docker及docker命令
  18. css多图标在一张图内如何正确显示它们
  19. ASSERT_VALID
  20. 单词接龙java实现

热门文章

  1. [arc077e]guruguru
  2. oracle中_给表中的字段入学时间添加一个默认约束_默认系统时间,oracle常用语句,带详细的说明...
  3. Java excel大批量图片数据导出解决内存溢出问题
  4. unit12-mybatis框架
  5. 给 Visual Studio 换颜色
  6. Java(二)分支循环、数组、字符串、方法
  7. 【百城市长,直播助农】市长为化身主播 引来上千万人围观
  8. 近几年热门软件及其创新性
  9. 在ARCGIS中显示几何图形
  10. 山冈庄八-德川家康-崛起三河(1)