转载:http://blog.sina.com.cn/s/blog_61866a820101192h.html

★自动色阶

一、作用:自动调整图像中的黑白场。

二、原理:剪切每个通道中的阴影和高光部分,并将每个颜色通道中最亮或最暗的像素映射到纯白或纯黑;中间像素按比例重新分配分布。

三、运用:会增强图像中的对比度,因数像素值会增大。

四、特点:单独调整每个颜色通道,有可能会移去颜色或引入色痕。在像素平衡分布且需要以简单方式增加对比度的特定图像中,提供较好的效果。

★自动对比度

一、作用:自动调整图像的对比度。

二、原理:剪切图像中的阴影和高光值,再将图像中的剩余部分的最亮和最暗像素映射到纯白或纯黑;中间像素按比例重新分配分布。

三、效果:会使高光看上去更亮,阴影看上去更暗。

四、特点:不会单独调整各个颜色通道,不会引入或消除色痕。

五、默认值情况:剪切白色/黑色像素的0.5%;也就是说忽略两个极端像素的0.5%

(可使用【色阶】或【曲线】对话框中的“自动颜色校正”选项来更改这个默认设置)

六、运用:可改进许多摄影或连续色调图像的外观,但无法改变单调颜色的图像属性。

★自动颜色

一、原理:能过搜索图像来标识阴影、中间调、高光,从而校正图像的对比度和颜色。

二、默认值情况:使用“RGB128灰色(中度灰色)”这一目标颜色来中和中间调,并将阴影和高光剪切0.5%

(可使用【色阶】或【曲线】对话框中的“自动颜色校正”选项来更改这个默认设置)

自动对比度和自动色阶的实现代码:http://www.cnblogs.com/Imageshop/archive/2011/11/13/2247614.html

我们以24位彩色图像为例说明这两个算法。

  在执行两个算法之前,我们需要确定两个参数,大家在用PS时选择自动色阶并不会弹出什么参数设置对话框,那是因为PS把这个隐藏的比较深 。选择曲线或色阶命令,然后在弹出的界面中点击选项按钮,会出现如下界面:

  注意其中的裁剪(C)/裁剪(P)中的变量,这两个参数是影响自动色阶效果的重要数据,我们以变量LowCut和HighCut来记录它。

好,接着说。两个算法的第一步,都是分别统计各通道(红/绿/蓝)的直方图。

Dim HistRed(255)        As Long, HistGreen(255)        As LongDim HistBlue(255)       As LongFor Y = 0 To Height - 1Speed = Y * StrideFor X = 0 To Width - 1Red = ImageData(Speed + 2): Green = ImageData(Speed + 1): Blue = ImageData(Speed)HistRed(Red) = HistRed(Red) + 1                 '统计直方图HistGreen(Green) = HistGreen(Green) + 1HistBlue(Blue) = HistBlue(Blue) + 1Speed = Speed + 3NextNext
  1. 看了上面代码,我很欣赏C++的++运算符,HistRed(Red)++,多么简单啊,而且更高效。
  2. 算法的第二步,分别计算各通道按照给定的参数所确定的上下限值。什么意思呢,比如对于蓝色通道,我们从色阶0开始向上累加统计直方图,当累加值大于LowCut*所有像素数时,以此时的色阶值计为MinBlue。然后从色阶255开始向下累计直方图,如果累加值大于HighCut*所有像素时,以此时的色阶值计为MaxBlue。
PixelAmount = Width * Height                     '所有像素的数目Sum = 0For Y = 0 To 255Sum = Sum + HistBlue(Y)If Sum >= PixelAmount * LowCut * 0.01 Then   '注意PS界面里的那个百分号MinBlue = Y                              '得到蓝色分量的下限Exit For                                 '退出循环End IfNextSum = 0For Y = 255 To 0 Step -1Sum = Sum + HistBlue(Y)If Sum >= PixelAmount * HighCut * 0.01 Then  '注意PS界面里的那个百分号MaxBlue = Y                              '得到蓝色分量的上限Exit For                                 '退出循环End IfNext

绿色通道和红色通道的代码类似,请朋友们自己补充。

下一步,自动色阶和自动对比度就有所区别了,我们首先介绍自动色阶。

自动色阶:按照我们刚刚计算出的MinBlue/MaxBlue构建一个隐射表,隐射表的规则是,对于小于MinBlue的值,则隐射为0(实际上这句话也不对,隐射为多少是和那个自动颜色校正选项对话框中的阴影所设定的颜色有关,默认情况下是黑色,对应的RGB分量都为0,所以我们这里就隐射为0,有兴趣你们也可以指定为其他的参数),对于大于MaxBlue的值,则隐射为255(同理,这个值和高光的颜色设置有关),对于介于MinBlue和MaxBlue之间的值,则进行线性隐射,默认是隐射为0到255之间(当然实际是和我们的暗调和高光的设置有关,并且这里其实也不是线性隐射,是有一个Gamma校正,为了简便,用线性替代效果也没太大的问题)。

For Y = 0 To 255If Y <= MinBlue ThenBlueMap(Y) = 0ElseIf Y >= MaxBlue ThenBlueMap(Y) = 255ElseBlueMap(Y) = (Y - MinBlue) / (MaxBlue - MinBlue) * 255      '线性隐射End IfNext

顺便提一点,从程序的鲁棒性上来说,在执行这段代码前判断下MaxBlue是否等于MinBlue很有必要,两者相等,这图就无需校正了,直接结束程序。

用同样的道理,计算出绿色和红色通道的隐射表GreenMap和RedMap。

最后一步,对各通道图像数据进行隐射。

For Y = 0 To Height - 1Speed = Y * StrideFor X = 0 To Width - 1ImageData(Speed) = BlueMap(ImageData(Speed))ImageData(Speed + 1) = GreenMap(ImageData(Speed + 1))ImageData(Speed + 2) = RedMap(ImageData(Speed + 2))Speed = Speed + 3NextNext

自动色阶完成,下面我们谈谈自动对比度的不同。

在计算完各通道对应的上下限值后,自动对比度算法首先获取三个通道下限值的最小值,以及上限值的最大值,如下代码:

If MinBlue < MinGreen ThenMin = MinBlueElseMin = MinGreenEnd IfIf Min > MinRed Then Min = MinRedIf MaxBlue > MaxGreen ThenMax = MaxBlueElseMax = MaxGreenEnd IfIf Max < MaxRed Then Max = MaxRed

然后以此为新的上下限,计算隐射表。

For Y = 0 To 255If Y <= Min ThenMap(Y) = 0ElseIf Y > Max ThenMap(Y) = 255ElseMap(Y) = (Y - Min) / (Max - Min) * 255      '线性隐射End IfNext

最后,以这个隐射表分别对红绿蓝通道进行处理。

For Y = 0 To Height - 1Speed = Y * StrideFor X = 0 To Width - 1ImageData(Speed) = Map(ImageData(Speed))ImageData(Speed + 1) = Map(ImageData(Speed + 1))ImageData(Speed + 2) = Map(ImageData(Speed + 2))Speed = Speed + 3NextNext

   由以上过程可以看出,对于灰度图像,由于只有一个通道,自动对比度和自动色阶实际上算法相同,结果一样。

对于32位图像,这类单点像素处理的过程一般是无需处理Alpha通道的。

photoshop自动对比度,自动色阶,自动颜色区别相关推荐

  1. 4.20 使用自动色调、自动对比度和自动颜色命令调整图像色调 [原创Ps教程]

    原文:http://coolketang.com/staticPhotoshop/5a98d43d9f54544201615c64.html 1. 本节课程将为您演示,如何使用[自动色调].[自动对比 ...

  2. 调整图像- 自动对比度、自动色阶算法

    调整图像- 自动对比度.自动色阶算法 我们以24位彩色图像为例说明这两个算法. 在执行两个算法之前,我们需要确定两个参数,大家在用PS时选择自动色阶并不会弹出什么参数设置对话框,那是因为PS把这个隐藏 ...

  3. 照片名称:Photoshop,

    照片名称:Photoshop, 照片名称:调出照片柔和的蓝黄色-简单方法, 1.打开原图素材,按Ctrl + J把背景图层复制一层,点通道面板,选择蓝色通道,图像 > 应用图像,图层为背景,混合 ...

  4. 【转】PhotoShop 修改人物学习

    [转载]: [注意]:本人从网络中找到的资料,便于以后的学习,但是具体原创不知道是谁,如果是您的话,请告诉我你在什么地方发表过,我将提供转载的地址.如果不便于我的转载,请与本人联系. 照片名称:Pho ...

  5. 【OpenCV 例程300篇】208. Photoshop 对比度自动调整算法

    OpenCV 例程200篇 总目录 [youcans 的 OpenCV 例程300篇]208. Photoshop 对比度自动调整算法 对比度是指图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量 ...

  6. 初中计算机ps教程,初中信息技术Photoshop照片调色的教学设计

    初中信息技术Photoshop照片调色的教学设计 教学目标 知识与技能:掌握调整图像明暗.调整图像色彩的命令:学会分析照片,处理生活中有问题或拍的不满意的照片. 过程与方法:在学习的过程中,了解每个命 ...

  7. Photoshop CC从入门到精通教程-李发展-专题视频课程

    Photoshop CC从入门到精通教程-50786人已学习 课程介绍         如果你是设计小白,看了很多视频教程,依然学不会PS,那么这次你终于找对了! Photoshop CC从入门到精通 ...

  8. 局部自适应自动色阶/对比度算法在图像增强上的应用

    本篇博文来自博主Imageshop,打赏或想要查阅更多内容可以移步至Imageshop. 转载自:https://www.cnblogs.com/Imageshop/p/3395968.html  侵 ...

  9. java图像处理之自动对比度

    在图像处理软件Photoshop中有一个自动对比度功能,可以一键调节图像亮度.对比度.比如,像下面这张由于曝光不足形成的非常暗的图像,只有图像中间比较亮一些的路面才能看到,其他地面上的物体几乎无法看见 ...

最新文章

  1. Web测试需要了解的知识
  2. 全球所有货币币种汇总
  3. 【坑爹微信】总有一款接口能坑你到吐血 --- 微信开发经验录
  4. pandas纵向合并数据
  5. 使用JS动态生成表格数据和分页显示
  6. ril.java_RIL.java里request流程
  7. 线程学习9——Mutex类
  8. mercury无线路由器设置服务器无响应,有了这款路由器,从此卡顿不存在
  9. 西工大计算机学院软件工程专硕,念念不忘,必有回响——西北工业大学软件工程专硕...
  10. Redis 集合排序
  11. R语言 创建空的数据框
  12. 帝国cms缩略图:网站不同地方生成不同的缩略图
  13. 万变不离其宗之ZYNQ启动介绍
  14. MATLAB 字符串数组
  15. 软件定义网络 Software Defined Network (一)概述
  16. 伯努利数简单学习笔记
  17. 《FontForge常见问题FAQ》字王翻译版
  18. Word,Excel,PPT等Office文件Web浏览器在线预览
  19. Grads画等值线(一)-----心得感言
  20. C++/python描述 898. 数字三角形 (四种实现方法)

热门文章

  1. 立方体,生成6个面,修改透视、俯视角度
  2. 从小故事带你理解零知识证明 | 区块链一千零一问
  3. 《深入理解Scala》——第1章,第1.2节当函数式编程遇见面向对象
  4. 自定义UICollectionView布局(类似集五福)
  5. 祖鲁法则.mobi下载
  6. 除了FastJson,你也应该了解一下Jackson(二)
  7. 最完整的Eclipse插件AmaterasUML的下载安装教程
  8. “模组+天线”全栈解决方案,提速物联网终端高效部署
  9. 计算机硬件造型,带你见识下那些稀奇古怪的电脑造型!
  10. UE4-4.26蓝图功能实现:鼠标点击旋转双开门