Photoshop直方图.docx
《Photoshop直方图.docx》由会员分享,可在线阅读,更多相关《Photoshop直方图.docx(12页珍藏版)》请在冰点文库上搜索。
Photoshop直方图
直方图(Histogram)详解直方图(Histogram)也叫柱状图,是一种统计报告图,由一系列高度不等的纵向条纹表示数据分布的情况。
假设我们有一堆硬币,如下图所示,我们想知道一共有多少钱。
我们当然可以一枚一枚地数,但这样如果硬币多了可能会搞乱,因此我们需要先把硬币分类,然后分别统计每种硬币的数量。
(Kindof把统计的结果图示出来,就成了直方图。
下图的横向数轴标示出硬币的面额,纵向标示出硬币的数量(NumberofCoins)。
Coins)
图像的直方图7代表黑色,080,1,2,3,4,5,6,7以灰度图为例,假设我们的图中一共只有这种灰度,代表白色,其它数字代表0~7之间不同深浅的灰度。
1/14
,纵轴标示每种灰度的数量。
统计的结果如下,横轴标示灰度级别(0~7)
中的显示。
Photoshop(PS)
直方图统计数据CSPhotoshopCS提供了动态的直方图面板,之前的版本要通过图象>直方图来察看。
2/14
横轴标示像素的数量。
亮度值(0~255),纵轴标示每种[5*3=15]图像的大小,图像的像素总数。
像素(Pixels)-
色阶、数量、百分位这三项根据鼠标指针的位置来显示横坐标当前位置的统计数据。
[181]0~255。
(Level)-鼠标指针所在位置的亮度值,亮度值范围是色阶[4]
鼠标指针所在位置的像素数量。
数量(Count)-
图像像素总数。
÷(Percentile)-从最左边到鼠标指针位置的所有像素数量百分位[(1+2+1+2+3+4)/15=13/15=0.8667=86.67%]
当鼠标拖动,选中直方图的一段范围时,色阶、数量、百分位将显示选中范围的统计数据。
下面举个简单的例子来说明平均值、标准偏差、中间值。
。
、200200、50、100例如图像A只有4个像素,亮度分别是偏偏亮,低于128算术平均数,Mean,Average)-图像的平均亮度值,高于128平均值(÷图像像素总数。
暗。
平均值的算法是:
图像的亮度总值
公式:
平均值代表代表总和,n的平均值,代表X∑(读作西格玛,Sigma)拨公式中,(读作X,X-bar)X的总数。
=(200+50+100+200)/4=550/4=137.5]
的平均值[图像A中间值是把图像所有像素的亮度值通过从从小到大排列,中位数,Median)-(中间值中值后,位置处在中间的数。
(如果有偶数个像素,就有两个位于中间的数,取前面的一个)是位于中间的,取和20010050<=100<=200<=200A[图像的中间值:
亮度排序后,]
前面的100作为中间值。
3/14
标准偏差(标准差,StdDev,StandardDeviation,SampleVariance)-指图像所有像素的亮度值与平均值之间的偏离幅度。
标准偏差越小,图像的亮度变化就越小,反之亮度变化就越大。
标准偏差公式:
=137.5)
的标准偏差:
(已知平均值A图像S^2=((200-137.5)^2+(50-137.5)^2+(100-137.5)^2+(200-137.5)^2)/(4-1)=标准方差(62.5^2+(-87.5)^2+(-37.5)^2+62.52)/3=(3906.25+7656.25+1406.25+3906.25)/3=16875/3=
5625
=75开平方标准偏差S=5625通道、红、绿、蓝、RGB可以根据不同的通道来显示直方图,这些通道分别是Photoshop亮度和颜色,它们分别统计了不同的颜色数据。
4/14
个像素,颜色值分别是只有3下面举例来说明这些通道代表的含义。
例如图像B。
RGB(30,40,50)、RGB(60,70,80)RGB(0,10,20)、这三个60、、只统计值,对于图像红色通道只统计颜色的通道红、绿、蓝-RB030数字,然后根据这三个数字绘出直方图。
绿色和蓝色通道也用相同的方法处理。
5/14
、40、30、,要统计0、10、20B-RGB通道统计图像的所有RGB数据。
对于图像9个数字。
70、、80这50、60
求出每个像素的亮度值,然后-先用亮度公式Gray=0.3*R+0.59*G+0.11*B亮度通道,第一个像素的亮度值为对这些亮度值进行统计。
对于图像B,68.10.3*0+0.59*10+0.11*20=8.1,用同样的方法求出另两个像素的亮度值分别为38.1和、、然后四舍五入取整,对83868这三个数字进行统计。
6/14
。
作为亮度公式进行统计,例如GIMP[注]有些软件用Gray=(R+G+B)/3通道的统计数据绘制在同一幅图中。
把红、绿、蓝和RGB颜色通道-
(Cachelevel)高速缓存级别?
为什么要用缓存(Cache)我们在处理一些超大的图片时,会因为利Photoshop像素数量过多而导致每一步操作都很慢,为了提高图片的显示与刷新速度,用图片的缩小版本来进行计算并显示。
会自动生成许多这幅图片的缩小版本放在临时文件当你载入一幅图片时,Photoshop的等等。
当你把视图25%的、12.5%中,这些缩小图就是高速缓存,其中有缩小到50%的、那张缓存小图的计算结果来更新视图。
25%缩小时,比如缩小到25%,Photoshop就利用2的原图,级别缓存小图的不同缩小比例代表不同的缓存级别。
缓存级别1为100%25%的小图,以此类推。
为为50%的小图,级别3(Edit>
内存与图像高速缓存若要设定缓存级别,可以选择菜单编辑>预置>,适用于处6PhotoshopCS2Preferences>Memoryandimagecache)。
的缓存级别默认值为理高质量的数码相机照片。
7/14
”(UseCacheforhistogram)“使用直方图高速缓存注[]PhotoshopCS2之前的版本有一个的选项,可以提高直方图的绘制速度,但会降低精确度。
建议不要勾选此项,否则当你缩Photoshop就会使用相应的缓存小图来生成直方图。
小视图时,缓存级别的算法1/4。
取上一级的四个相邻像素的平均值来获得一个像素,像素数是它上一级的为42*2,级别3,缓存级别2的大小为4*4,级别为例如有张图片的大小是8*8。
1*1的灰度值取原图的平均值像素的棋盘格图片,缓存级别2下图是一张2*2(0+255+255+0)/4=500/4=128。
直方图面板中的缓存级别会自动选择适当的缓存级别当图片较大时,为了提高直方图的刷新速度,Photoshop来生成直方图。
像素的图片,画成棋盘格图2*2现在来研究一下直方图面板中的缓存级别。
新建一个案,然后执行编辑>定义图案。
新建一个1000*1000像素的图片,灰度模式。
8/14
填充命使用编辑>令和前面定义的图案来填充这张图片。
的图片。
2这时看一下直方图面板,会发现右上角多了一个警告图标。
这是缓存级别,,像素数量2500001282通过直方图我们可以看出缓存级别是张纯灰色的图片,灰度值正好是原图的1/4。
9/14
单击那个警告图标,现在已经更新为原图的直方图。
像素数量为。
这些都是原图的正确255/2=127.50255两种灰度,平均值为01000*1000=1000000,有和数据,正是我们所期望的。
对于一般的图像,为了提高速度而使用缓存生成直方图基本上是可行的,但要注意原图相邻像素的亮度变化越大,缓存小图造成的误差就越大。
直方图的Y轴范围10/14
前面我们已经知道,Photoshop直方图的X轴标示亮度值,Y轴标示每种像素的数量。
X轴的数值范围是0~255,现在来讨论一下Y轴的范围。
的蓝色通道为例,注意看下图中所显示的数据。
以bracket.bmp
)时,显示。
当鼠标光标移到直方图最左边(色阶为0这幅图像的像素总数为192002684,这个最大值应该就是最长的一条竖线。
当鼠标向右移动到色阶出数量的最大值裁去了一部分。
Photoshop526,但竖线仍是同样长度,这说明色阶0的竖线被时,数量为那么Photoshop是如何确定该裁去多少呢?
,这时的直方图显示如下。
可以看轴一个固定的范围,例如0~1120我们可以给Y以上的部分都是空白,而图形下部很纤细,看不清细节。
出,最大值684
轴的范围缩小到Y我们也可以把,这时图形被纵向拉长了,我们可以看出很多图形下部的细节,但图形的上部有太多0~135被裁掉了。
11/14
比较常见的一种方法是把图形缩短或拉长到正好适合视图的大小,此时范围是Photoshop在一般情况下也是这样。
)0~684(最大值。
大多数软件都使用这种方法,
上面的方法有一个最大的缺陷就是如果有几条特别长的竖线的话,其它的竖线会变得会把这些长竖线裁去一些。
很短而不利于我们观察它们的细节,所以Photoshop那么就用像分之一,Y轴范围的原则是如果最大值超过像素总数的64Photoshop确定作为Y轴范围的上限,否则以最大值作为上限。
素总数÷64轴的Y,所以19200,19200/64=300,因为最大值684>300bracket.bmp的像素总数为。
范围是0~300
直方图的算法看到论坛上有人认为计算直方图开销最大的是标准偏差,还有人认为有必要取消标准偏差的显示项以提高速度。
其实标准偏差的计算量并不大,就看你怎么去计算了。
前面讲过的一些算法的确会让人误以为计算这些数据时要对每个像素都进行加减乘除乘方等运算,所以我觉得有必要讨论一下直方图的具体计算过程。
GrayTable(GrayTable)要绘制直方图,首先要建立一个储存每种灰度数量的数据表,的数组。
然后要对图像的每一个像素进行统计,把每种灰度的像素数量是一个大小为256中。
这一步是必须的,不能偷工减料,这部分的计算量与像素的数量成GrayTable记录到正比,因此图像越大,计算的速度就越慢。
要想提高速度,唯一的方法就是使用缓存中的小图进行计算,但这样会降低精确度,不过对于实时更新的动态直方图来说,这么做还是很有必要的。
12/14
数据表GrayTable准备好了已后,平均值、中间值和标准偏差都可以利用GrayTable里的数据来计算,也就是说没必要再对每个像素进行计算了。
无论图像有多大,GrayTable里都只存放256个数字,所以计算起来相当快。
举例来说,例如Gray
平均值=(0*3+1*2+2*1+3*5+0+255*1)/(3+2+1+5+0+1)=274/12=22.8
看到了吧,用乘法就行了,灰度值×数量再相加。
标准偏差也是用类似的方法计算。
GrayTable的灰度值是从小到大排列的,所以计算中间值也很方便。
对于动态直方图来说,也可以利用GrayTable来优化。
有些时候,我们没有必要重新统计整幅图像的像素来更新直方图,只要把先前直方图的GrayTable里的数据调换一下位置就行了,这种方法仅限于单幅图像单像素的处理(点运算)。
例如做反色运算后,新的直方图其实就是把原来的直方图左右翻转了一下。
这样无论图像有多大,都可以做到精确的实时更新。
目前还没做到这一图像菜单的功能几乎都可以使用这种优化,但PhotoshopPhotoshop点,估计是怕麻烦吧。
一些高画质数码照片处理软件可以考虑把这个功能加进去。
-------------------------感谢灰鹿同志超一流的教案水准!
上文书转载自:
灰鹿色彩笔记
----------------------------------------------------------------------下文书寥寥数字,却更堪称经典。
级?
而不是225255里的色阶为什么只有直方图“”相关引用
13/14
关于直方图的显示225的错误修改方法:
如果发现了有显示错误的现象,先关闭Photoshop,用记事本打开Photoshop安装目录下Required子目录中的tw10428.dat文件。
在打开的tw10428.dat中查找$$$/HistogramPalette/StatText/Cache=高速缓存级别尺,其位于第7667行。
将高速级别4个字删除,只保留缓存2字。
保存后退出。
再启动Photoshop即可解决。
删除和保留的文字可自行决定,但必须至少删除3个汉字才能解决问题。
注意:
修改tw10428.dat文件是Photoshop中文界面的字符文件,改动不当可能造成界面显示错误。
如果删除该文件或移动出Required目录,Photoshop将以英文界面启动。
因此。
Photoshop请做好备份,谨慎操作。
如果错误操作且无法挽回,必须重新安装
14/14