索引图像处理的一些心得。

laviewpbt 2007-05-05 04:49:23
我不知道索引图像在实际中用的多不多,不过,最经对索引图像有所涉及,总结了一些小经验,让大家来看看对不对。

索引颜色图像最多只能含用256种颜色,当图像模式转为索引颜色时,PS会构建一个索引色彩表(CLUT),用来存放索引图像中的颜色。如果原图像中的颜色超出色彩表中的颜色范围,PS会自动选取色彩表中最相近的颜色或使用已有的颜色模拟该种颜色。索引颜色模式可以减小文件大小,同时保持视觉上的品质基本不变。

因此,索引图像的实际数据只是对应颜色表中的一个索引,而并不是实际的像素值,这个与灰度图像不同,灰度图像是同样是最多含有256中颜色的图像,但其颜色表的值是从0到255连续的值,所以灰度图像的数据我们即可以看成是实际的像素值,也可以看成是索引值。索引图像的这种特性使得我们在处理他的时候,一般不直接操作其索引数据。

为了将真彩色图像转换为索引图像,我们必须构建一个颜色表(PS的菜单中是这样叫的,我想就是调色板的意思吧),为了尽量较少图像在转换过程中的视觉损失,颜色表的构建一定要合理,现在有很多算法来寻找这样的颜色表,最为人知的就是流行色法,即图像中使用最多的256中颜色。对于不包含在这256种颜色中的值,则用距离其最近的颜色代替,系统的GetNearestPaletteIndex这个函数可以实现这个过程,我自己写过类似的函数,发现该过程内部应该用的欧式距离来计算两者的相似程度的。

在PS中,当我们将图像转换成索引模式后,我们会发现滤镜菜单不能用,调整菜单中也有很多不能用了,为什么?

首先,滤镜菜单不能用了,这是因为滤镜菜单中的大部分操作都涉及到图像的不同领域,这样就会产生新的颜色值,比如最简单的模糊(3*3的加权平均值)过程就会得到新的像素值,通常情况下这个新的像素值在颜色表中是不存在的,也许你想,我们可以把这个新的颜色值也隐射成颜色表中与其最近的值啊,但是,这样的操作本身就是对滤镜算法一种歪曲了,只能使得变换后的结果无法认可。

那么,调整菜单中的部分功能为什么不能用了呢,比如说通道混合器,自动颜色等等,其实这也是合理的,通道混合器是在不同通道中混合颜色值得到新的图像的,转换成索引图像后,索引图像只有一个通道,怎么混合。

当然,PS调整菜单中的大部分功能还是可以使用的,因为调整菜单中的功能基本上都是对单点像素进行处理的。前面已经说过,索引模式中图像的数据只是对应颜色表中的一个索引,那么如何进行单点处理呢,其实正式因为这个原因,使得索引图像在单点处理中有着独特的特性。

比如图像的反色,反色的原理是黑变白,白变黑,即x=255-x,索引图像如何操作,聪明的你很快就会想到,直接把调色板中的所有颜色值都改变为其互补色不就行了吗,的确,就是这么简单,那么诸如颜色平衡,去色,颜色替代啊等等都是类似的过过程,直接根据相关算法调整颜色表就可以了。当然这里面的色调均化还是会涉及到图像的数据的。正式因为这个原因,索引图像的大部分处理速度都要优于灰度图像。

这里顺便讲下灰度图像的上述过程的处理,比如反色,如果我们直接将灰度图像的颜色变中各颜色反色,则显示后的效果是正确的,但是这样的操作后你如果按照BMP的格式写入文件,然后用PS打开,PS就是认为其是索引图像了,就是因为灰度图像的颜色表是固定的。所以千万不要打灰度图像颜色表的主意。

我们再看看索引图像的旋转和缩放,打开一副真彩色图像,我们将其旋转10度,同样复制一份刚才的真彩色图像,转换为索引图像,我们也将其旋转10度,仔细比较两幅图片,你会发现真彩色图像旋转后没有失真,而索引图像则有锯齿产生,为什么呢,其实还是因为索引的缘故,如果要抗锯齿,旋转则会产生新的像素值,这就类似于上述滤镜的过程一样。如果我们在自己写抗锯齿的旋转算法时,不考虑这点,则你得到的结果将惨不忍睹(不抗锯齿的算法不会,他没有产生新的像素值)。同样,对于缩放除了最邻近插值外其他算法也有类似的过程,但是PS对索引图像也提供了几中缩放方法,我想,也许这里其有个转换过程吧,我自己也试多处理,首先我们记录下索引图像的颜色表,然后将其转换为真彩色图像,调用真彩色图像的缩放方法,完成后,在次利用刚才保存的颜色表将其转换为索引图像,因为缩放前后的图像在颜色值上差别不是很大,即通过插值计算的来的新的像素值和原来的像素值插补不大,这样在颜色表中寻找到其对应的索引值也应该相同。所以从视觉上我们并没有感到错乱。利用这个原理,我们也可以自己实现抗锯齿的索引图像的旋转。

另外,索引图像的颜色表不是一定要包含256中颜色的,其实我觉得在2到255之间都可以啊,如果小玉16中索引色,则我们可以将其保存为4位色的,当然也可以保存为8位色的,要知道4位色的处理痛苦程度是8位色的两倍啊,为什么,字节,位,对齐等等。

总之,索引图像中的最重要的概念就是颜色表,由于这个颜色表的存在,我们有很多功能都不可以实现,比如透明叠加,图像的实现等等,不过由于其颜色的失真较小以及保存后的文件大小比较小等优势,索引图像还是有很大的用处的。
...全文
2184 38 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
yiyezhiqiua 2012-05-24
  • 打赏
  • 举报
回复
很不错,帮助很大,顶起!
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
没遇到过这种情况.
meiZiNick 2008-04-30
  • 打赏
  • 举报
回复
什么呀
liuyann 2008-02-08
  • 打赏
  • 举报
回复
新年快乐!万事如意!
liuyann 2008-02-08
  • 打赏
  • 举报
回复
新年快乐!万事如意!
昵称被占用了 2008-01-22
  • 打赏
  • 举报
回复
接分
goodmrning 2008-01-04
  • 打赏
  • 举报
回复
赶紧接分!
帮楼主顶下!!!!!!!!!!!!!!
blueink_200451 2007-08-27
  • 打赏
  • 举报
回复
路过.看一下.也顶一下.
顺便接点分
ming4098 2007-08-14
  • 打赏
  • 举报
回复
支持
ljk02079 2007-08-08
  • 打赏
  • 举报
回复
学习...
zzyong00 2007-08-08
  • 打赏
  • 举报
回复
up
  • 打赏
  • 举报
回复
有点类似MID文件格式处理方式
tete1030 2007-08-06
  • 打赏
  • 举报
回复
漂亮
VBAdvisor 2007-06-15
  • 打赏
  • 举报
回复
to:
WallesCai(女人之美,在于蠢得无怨无悔,男人之美,在于撒谎撒得白日见鬼)
期待中。。。
Best Wishes and Take care!
熊孩子开学喽 2007-06-14
  • 打赏
  • 举报
回复
TO 楼主
我倒不是在网上看的
因为我以前就是柯达的数码工程师,其实就是安装和维修数码扩印机
柯达公司在中国的第一台民用数码扩印机就是我和一个法国佬一起安装的.
那时每天要看几千张照片(练习色彩感觉)
安装和维修机器的时候要给各种各样挑剔的照片调整色彩,久而久之养成的习惯.
后来辞职在家的时候才想起用VB来写一个图片处理程序的.
后来的3年中一直没有工作,经常泡论坛,渐渐发现一个问题:懂编程的人对于色彩和成像原理不熟悉,而熟悉色彩成像原理的不大会编程...
即使是专门介绍图像编程的计算机书籍上也很少讲色彩原理什么的,倒是很多介绍摄影知识的专业杂志上往往会有这方面的东西可看.不知道网上有没有.
而PHOTOSHOP类的书籍则都是结合了PHOTOSHOP中的功能来讲的,原理也涉及得很少.
等有空的时候,我也想把一些很基本的东西写几个专题放到BLOG上分享一下.希望大家能支持.
我会尽量和计算机相结合,让大家能有实际的代入感就好

haen_zhou 2007-06-10
  • 打赏
  • 举报
回复
JF... I NEED MORE SCORES...
colorslife 2007-05-16
  • 打赏
  • 举报
回复
含金量太高了啊,呵呵,
diclover 2007-05-11
  • 打赏
  • 举报
回复
好贴,学习
programart_life 2007-05-11
  • 打赏
  • 举报
回复
呵呵,很怀念在Dos下做游戏时用的16和256调色板动画啊
xiaolei1982 2007-05-10
  • 打赏
  • 举报
回复
超赞咧~~~
加载更多回复(16)

743

社区成员

发帖
与我相关
我的任务
社区描述
VB 版八卦、闲侃,联络感情地盘,禁广告帖、作业帖
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧