打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【转】去色、阈值和色彩分离

2010-10-18 14:12:26|  分类: 图像处理技术 |字号 订阅

继续讨论Photoshop(PS)“图像(Image)>调整(Adjust)”菜单的功能。你可以使用《图像的简单玩法》中的演示程序和本文提供的公式来测试一些图片。 

去色(Desaturate)

关键词:HSL;灰度;黑白照片

Photoshop菜单:图像>调整>去色(Shift+Ctrl+U)

公式:CNew = (Max(R,G,B) + Min(R,G,B)) / 2

c=(maxRGB+minRGB)/2

去色是Photoshop中把彩色照片变为黑白照片最简单的方法,按Shift+Ctrl+U键即可完成。

去色就是把图片颜色的色相和饱和度信息全部去掉,只保留亮度信息。去色使用了HSL(H-色相;S-饱和度;L-亮度)中的L算法,因此效果和执行图像>调整>色相/饱和度(Ctrl+U)后,饱和度值调到-100时是一样的。

去色和使用图像>模式>灰度的效果是不同的。很多人认为灰度模式使用的是Photoshop中的标准亮度公式Gray=0.3*R+0.59*G+0.11*B,但其实它使用的是Lab的算法,和Lab模式a、b的色度信息都为0时的效果是相同的。

RGB转灰度有很多种算法,后面我会单独写一篇文章来讨论这些算法。(《Photoshop彩图变黑白的方法总结》)

阈值(Threshold)

关键词:临界值;图像二值化;灰度分划

Photoshop菜单:图像>调整>阈值

Photoshop标准亮度公式:Gray = 0.3*R + 0.59*G + 0.11*B

阈值的公式:

  • if Gray >  Threshold then CNew = White    

  • if Gray <= Threshold then CNew = Black    

t=85    gray=cint(0.3*r+0.59*g+0.11*b)  if gray >= t then c = 255  if gray <  t then c = 0

阈值命令将灰度或彩色图像转换为高对比度的黑白二值图像,所有比阈值亮的像素转换为白色,而所有比阈值暗的像素转换为黑色。

阈值对话框中的直方图和亮度直方图是一样的,Photoshop的亮度直方图使用的是Gray=0.3*R+0.59*G+0.11*B这个公式。

我们建立一个黑白的渐变条,然后执行阈值命令,就可以很容易看出阈值的运作原理了。

什么是阈值?

阈(音yù),指门槛,泛指界限(limit)或范围(range)。

阈值(Threshold)也称临界值,指事物开始或改变的起点,或指一个正好能产生特定效应的界限。例如100分的试题,考60分以上才算及格,那么“60”就是分数的阈值;如果你最多只能考59分,那么“59”就是你的阈值了。

阈值的同义词:门槛、开始、开端、极限。

看到不少同学把“阈值”写成了“阀值”,甚至在不少论文中也看到阀值一词。在百度搜了一下发现搞错的人还真不少呢,阀值总共110,000篇。还听到有人念“或值”。如果搞错的人太多了,错误的可能也会变正确,中文里有很多词汇就上建立在误解之上的,新的词典里也许会加入“阀值”一词也说不定呢。不过我觉得做学术论文的,最好还是严肃一点,老老实实地写“阈值”吧,不要玩繁体字的花样。

色调分离(Posterize)

Photoshop菜单:图像>调整>色调分离

色调分离把图片按指定的色阶进行分离,生成特殊效果。

色调分离相当于多个级别的阈值。再以考试为例,0~100分的试题,我们可以跟据成绩来把学生分成几类:0~19分的是没救了的;20~49分的是很差的;50~69分的是在及格边缘荡秋千的;70~89分是良好的;90~100分是优秀的。色调分离也是这样的原理。

先来看看色阶level=2时的效果:

if (c>=128) then c=255  if (c<128)  then c=0

level=2时,其实就是把RGB通道分别做阈值处理,阈值t=128,所得的图片最多只有8种颜色:黑色(0,0,0)、白色(255,255,255)、红色(255,0,0)、青色(0,255,255)、绿色(0,255,0)、洋红色(255,0,255)、蓝色(0,0,255)、黄色(255,255,0)。

色阶(level)值的范围是2~256,Photoshop会自动把数值约束在这个范围之内。色调分离有多种算法,我们先来看一下Photoshop的算法,下面是level=4时的代码:

level=4    levelSize =256/level     '求平均每个色阶的颜色数量  levelValue=255/(level-1) '求第二色阶的颜色值  levelC=int(c/levelSize)  '求当前的颜色在第几色阶  c=int(levelValue*levelC) '求当前色阶的颜色值

当level=4时,Photoshop把0~255之间的这256种颜色值平均分成了4个色阶,每个色阶的颜色数量是levelSize=256/level=256/4=64。第一色阶(0~63)的颜色值是0,第二色阶(64~127)的颜色值是levelValue=255/(level-1)=255/3=85,第三色阶是levelValue*2=85*2=170,第四色阶是levelValue*3=85*3=255。

另一算法,取每个色阶的中间值:

level=4    levelSize =256/level     '求平均每个色阶的颜色数量  levelValue=levelSize/2   '求第一色阶的颜色值  levelC=int(c/levelSize)  '求当前的颜色在第几色阶  c=int(levelSize*levelC+levelValue) '求当前色阶的颜色值

还有一些算法,效果不太好,这里就不列举了。

相关资料

转黑白方法细细辨识 http://www.52hutu.com/library/3/grayscale/grayscale.htm

AxiomX - Posterize Algorithm http://www.axiomx.com/posterize.htm

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
利用Photoshop拼接数码照片的技巧
玩转Photoshop 后期大师教你熟练使用曲线功能
复杂的处理 解决不均匀的过度曝光问题
PhotoShop解决不均匀曝光问题的两种方法
控制曝光的法门:解读直方图
让Photoshop给你更棒的黑白照片效果
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服