什么是直方图剖析.docx

上传人:b****1 文档编号:2101930 上传时间:2023-05-02 格式:DOCX 页数:29 大小:3.75MB
下载 相关 举报
什么是直方图剖析.docx_第1页
第1页 / 共29页
什么是直方图剖析.docx_第2页
第2页 / 共29页
什么是直方图剖析.docx_第3页
第3页 / 共29页
什么是直方图剖析.docx_第4页
第4页 / 共29页
什么是直方图剖析.docx_第5页
第5页 / 共29页
什么是直方图剖析.docx_第6页
第6页 / 共29页
什么是直方图剖析.docx_第7页
第7页 / 共29页
什么是直方图剖析.docx_第8页
第8页 / 共29页
什么是直方图剖析.docx_第9页
第9页 / 共29页
什么是直方图剖析.docx_第10页
第10页 / 共29页
什么是直方图剖析.docx_第11页
第11页 / 共29页
什么是直方图剖析.docx_第12页
第12页 / 共29页
什么是直方图剖析.docx_第13页
第13页 / 共29页
什么是直方图剖析.docx_第14页
第14页 / 共29页
什么是直方图剖析.docx_第15页
第15页 / 共29页
什么是直方图剖析.docx_第16页
第16页 / 共29页
什么是直方图剖析.docx_第17页
第17页 / 共29页
什么是直方图剖析.docx_第18页
第18页 / 共29页
什么是直方图剖析.docx_第19页
第19页 / 共29页
什么是直方图剖析.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

什么是直方图剖析.docx

《什么是直方图剖析.docx》由会员分享,可在线阅读,更多相关《什么是直方图剖析.docx(29页珍藏版)》请在冰点文库上搜索。

什么是直方图剖析.docx

什么是直方图剖析

什么是直方图

直方图(Histogram)也叫柱状图,是一种统计报告图,由一系列高度不等的纵向条纹表示数据分布的情况。

假设我们有一堆硬币,如下图所示,我们想知道一共有多少钱。

我们当然可以一枚一枚地数,但这样如果硬币多了可能会搞乱,因此我们需要先把硬币分类,然后分别统计每种硬币的数量。

把统计的结果图示出来,就成了直方图。

下图的横向数轴标示出硬币的面额(KindofCoins),纵向标示出硬币的数量(NumberofCoins)。

图像的直方图

以灰度图为例,假设我们的图中一共只有0,1,2,3,4,5,6,7这8种灰度,0代表黑色,7代表白色,其它数字代表0~7之间不同深浅的灰度。

统计的结果如下,横轴标示灰度级别(0~7),纵轴标示每种灰度的数量。

Photoshop(PS)中的显示。

直方图统计数据

PhotoshopCS提供了动态的直方图面板,CS之前的版本要通过图象>直方图来察看。

横轴标示亮度值(0~255),纵轴标示每种像素的数量。

像素(Pixels)-图像的大小,图像的像素总数。

[5*3=15]

色阶、数量、百分位这三项根据鼠标指针的位置来显示横坐标当前位置的统计数据。

色阶(Level)-鼠标指针所在位置的亮度值,亮度值范围是0~255。

[181]

数量(Count)-鼠标指针所在位置的像素数量。

[4]

百分位(Percentile)-从最左边到鼠标指针位置的所有像素数量÷图像像素总数。

[(1+2+1+2+3+4)/15=13/15=0.8667=86.67%]

当鼠标拖动,选中直方图的一段范围时,色阶、数量、百分位将显示选中范围的统计数据。

下面举个简单的例子来说明平均值、标准偏差、中间值。

例如图像A只有4个像素,亮度分别是200、50、100、200。

平均值(算术平均数,Mean,Average)-图像的平均亮度值,高于128偏亮,低于128偏暗。

平均值的算法是:

图像的亮度总值÷图像像素总数。

平均值公式:

公式中,(读作X拨,X-bar)代表X的平均值,∑(读作西格玛,Sigma)代表总和,n代表X的总数。

[图像A的平均值=(200+50+100+200)/4=550/4=137.5]

中间值(中值,中位数,Median)-中间值是把图像所有像素的亮度值通过从从小到大排列后,位置处在中间的数。

(如果有偶数个像素,就有两个位于中间的数,取前面的一个)

[图像A的中间值:

亮度排序后50<=100<=200<=200,100和200是位于中间的,取前面的100作为中间值。

]

标准偏差(标准差,StdDev,StandardDeviation,SampleVariance)-指图像所有像素的亮度值与平均值之间的偏离幅度。

标准偏差越小,图像的亮度变化就越小,反之亮度变化就越大。

标准偏差公式:

图像A的标准偏差:

(已知平均值=137.5)

标准方差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

标准偏差S=5625开平方=75

通道

Photoshop可以根据不同的通道来显示直方图,这些通道分别是RGB、红、绿、蓝、亮度和颜色,它们分别统计了不同的颜色数据。

下面举例来说明这些通道代表的含义。

例如图像B只有3个像素,颜色值分别是RGB(0,10,20)、RGB(30,40,50)、RGB(60,70,80)。

红、绿、蓝通道-红色通道只统计颜色的R值,对于图像B只统计0、30、60这三个数字,然后根据这三个数字绘出直方图。

绿色和蓝色通道也用相同的方法处理。

RGB通道-统计图像的所有RGB数据。

对于图像B,要统计0、10、20、30、40、50、60、70、80这9个数字。

亮度通道-先用亮度公式Gray=0.3*R+0.59*G+0.11*B求出每个像素的亮度值,然后对这些亮度值进行统计。

对于图像B,第一个像素的亮度值为0.3*0+0.59*10+0.11*20=8.1,用同样的方法求出另两个像素的亮度值分别为38.1和68.1,然后四舍五入取整,对8、38、68这三个数字进行统计。

[注]有些软件用Gray=(R+G+B)/3作为亮度公式进行统计,例如GIMP。

颜色通道-把红、绿、蓝和RGB通道的统计数据绘制在同一幅图中。

高速缓存级别(Cachelevel)

为什么要用缓存(Cache)?

我们在处理一些超大的图片时,会因为像素数量过多而导致每一步操作都很慢,为了提高图片的显示与刷新速度,Photoshop利用图片的缩小版本来进行计算并显示。

当你载入一幅图片时,Photoshop会自动生成许多这幅图片的缩小版本放在临时文件中,这些缩小图就是高速缓存,其中有缩小到50%的、25%的、12.5%的等等。

当你把视图缩小时,比如缩小到25%,Photoshop就利用25%那张缓存小图的计算结果来更新视图。

缓存小图的不同缩小比例代表不同的缓存级别。

缓存级别1为100%的原图,级别2为50%的小图,级别3为25%的小图,以此类推。

若要设定缓存级别,可以选择菜单编辑>预置>内存与图像高速缓存(Edit>Preferences>Memoryandimagecache)。

PhotoshopCS2的缓存级别默认值为6,适用于处理高质量的数码相机照片。

[注]PhotoshopCS2之前的版本有一个“使用直方图高速缓存”(UseCacheforhistogram)的选项,可以提高直方图的绘制速度,但会降低精确度。

建议不要勾选此项,否则当你缩小视图时,Photoshop就会使用相应的缓存小图来生成直方图。

缓存级别的算法

取上一级的四个相邻像素的平均值来获得一个像素,像素数是它上一级的1/4。

例如有张图片的大小是8*8,缓存级别2的大小为4*4,级别3为2*2,级别4为1*1。

下图是一张2*2像素的棋盘格图片,缓存级别2的灰度值取原图的平均值(0+255+255+0)/4=500/4=128。

直方图面板中的缓存级别

当图片较大时,为了提高直方图的刷新速度,Photoshop会自动选择适当的缓存级别来生成直方图。

现在来研究一下直方图面板中的缓存级别。

新建一个2*2像素的图片,画成棋盘格图案,然后执行编辑>定义图案。

新建一个1000*1000像素的图片,灰度模式。

使用编辑>填充命令和前面定义的图案来填充这张图片。

这时看一下直方图面板,会发现右上角多了一个警告图标。

这是缓存级别2的图片。

通过直方图我们可以看出缓存级别2是张纯灰色的图片,灰度值128,像素数量250000,正好是原图的1/4。

单击那个警告图标,现在已经更新为原图的直方图。

像素数量为1000*1000=1000000,有0和255两种灰度,平均值为255/2=127.50。

这些都是原图的正确数据,正是我们所期望的。

对于一般的图像,为了提高速度而使用缓存生成直方图基本上是可行的,但要注意原图相邻像素的亮度变化越大,缓存小图造成的误差就越大。

直方图的Y轴范围

前面我们已经知道,Photoshop直方图的X轴标示亮度值,Y轴标示每种像素的数量。

X轴的数值范围是0~255,现在来讨论一下Y轴的范围。

以bracket.bmp的蓝色通道为例,注意看下图中所显示的数据。

这幅图像的像素总数为19200。

当鼠标光标移到直方图最左边(色阶为0)时,显示出数量的最大值684,这个最大值应该就是最长的一条竖线。

当鼠标向右移动到色阶2时,数量为526,但竖线仍是同样长度,这说明色阶0的竖线被Photoshop裁去了一部分。

那么Photoshop是如何确定该裁去多少呢?

我们可以给Y轴一个固定的范围,例如0~1120,这时的直方图显示如下。

可以看出,最大值684以上的部分都是空白,而图形下部很纤细,看不清细节。

我们也可以把Y轴的范围缩小到0~135,这时图形被纵向拉长了,我们可以看出很多图形下部的细节,但图形的上部有太多被裁掉了。

比较常见的一种方法是把图形缩短或拉长到正好适合视图的大小,此时范围是0~684(最大值)。

大多数软件都使用这种方法,Photoshop在一般情况下也是这样。

上面的方法有一个最大的缺陷就是如果有几条特别长的竖线的话,其它的竖线会变得很短而不利于我们观察它们的细节,所以Photoshop会把这些长竖线裁去一些。

Photoshop确定Y轴范围的原则是如果最大值超过像素总数的64分之一,那么就用像素总数÷64作为Y轴范围的上限,否则以最大值作为上限。

bracket.bmp的像素总数为19200,19200/64=300,因为最大值684>300,所以Y轴的范围是0~300。

直方图的算法

看到论坛上有人认为计算直方图开销最大的是标准偏差,还有人认为有必要取消标准偏差的显示项以提高速度。

其实标准偏差的计算量并不大,就看你怎么去计算了。

前面讲过的一些算法的确会让人误以为计算这些数据时要对每个像素都进行加减乘除乘方等运算,所以我觉得有必要讨论一下直方图的具体计算过程。

要绘制直方图,首先要建立一个储存每种灰度数量的数据表(GrayTable),GrayTable是一个大小为256的数组。

然后要对图像的每一个像素进行统计,把每种灰度的像素数量记录到GrayTable中。

这一步是必须的,不能偷工减料,这部分的计算量与像素的数量成正比,因此图像越大,计算的速度就越慢。

要想提高速度,唯一的方法就是使用缓存中的小图进行计算,但这样会降低精确度,不过对于实时更新的动态直方图来说,这么做还是很有必要的。

数据表GrayTable准备好了已后,平均值、中间值和标准偏差都可以利用GrayTable里的数据来计算,也就是说没必要再对每个像素进行计算了。

无论图像有多大,GrayTable里都只存放256个数字,所以计算起来相当快。

举例来说,例如GrayTable中存放了以下的数据。

平均值=(0*3+1*2+2*1+3*5+0+255*1)/(3+2+1+5+0+1)=274/12=22.8

看到了吧,用乘法就行了,灰度值×数量再相加。

标准偏差也是用类似的方法计算。

GrayTable的灰度值是从小到大排列的,所以计算中间值也很方便。

对于动态直方图来说,也可以利用GrayTable来优化。

有些时候,我们没有必要重新统计整幅图像的像素来更新直方图,只要把先前直方图的GrayTable里的数据调换一下位置就行了,这种方法仅限于单幅图像单像素的处理(点运算)。

例如做反色运算后,新的直方图其实就是把原来的直方图左右翻转了一下。

这样无论图像有多大,都可以做到精确的实时更新。

Photoshop图像菜单的功能几乎都可以使用这种优化,但Photoshop目前还没做到这一点,估计是怕麻烦吧。

一些高画质数码照片处理软件可以考虑把这个功能加进去。

●  曝光适当  

  

   

表示亮度的直方图横轴上的波峰基本在中心位置,波峰形态也很规则。

表示曝光正常,图像内没有明显的亮度差异。

从数据的角度看照片的话,该波形说明数值状态良好,易于进行后期编辑修正。

但并不是说在所有条件下波形都会均匀分布。

这里只是举出一个接近理想状态的亮度分布例子。

  

  

  

●  曝光不足  

  

  

 曝光不足时,波峰向左方大幅倾斜,表示昏暗部分较多。

相反,右方的明亮数据部分较少,照片本身也同时体现出这一倾向。

出现这种图形时,应进行正方向补偿,使波峰靠近直方图的中心部分。

波峰的高度表示数据的量,图中表示图像信息的波峰大部分集中在昏暗部分。

  

  

  

●  曝光过度  

  

  

 直方图整体向右方大幅偏移。

本来应为暗色的砖体和绿树等在实际的图像中也变得偏白了,图像有点模糊。

显示在右端的另一个小波峰是图像下方的道路部分。

在这种曝光过度情况下,左侧的暗色部分已经完全没有数据存在了。

这说明曝光已经相当过度了。

  

  

  

  

  

暗部缺失和高光溢出的直方图  

  

● 

 暗部缺失  

  

因为是根据从左方来的强光进行测光来拍摄,所以右方的阴影部分完全变成了黑色。

相应的,直方图的波峰也向左偏移,其中的一部分贴到了左端。

这部分就是暗部缺失,表示完全丧失了浓淡层次。

如果是有意去实现暗部缺失那也不成问题,如果不是有意去拍摄而是希望拍摄出自然的层次,那作为照片来说就属于失败了。

有必要考虑采用其他方法来使阴影部分变得明亮。

将阴影部分变亮后,直方图上贴在左边的部分也会消失。

  

  

  

●  高光溢出  

  

因采用强顺光拍摄,衣服的一部分和面部的凸起部分出现了反光。

数据丧失层次后出现了高光溢出。

数据集中于直方图的右方,其中代表面部和衣服部分的数据贴近直方图的右端,形成尖锐的波峰。

这就是高光溢出的部分。

这时,图像整体略有曝光过度也是产生高光溢出的一个原因,如果减少曝光,则整体波峰会向中央移动,理应能够避免衣服和面部的高光溢出。

最好能够在拍摄过程中显示直方图进行观察,确认曝光的分布和高光溢出。

样图:

1.色阶是什么:

色阶就是用直方图描述出的整张图片的明暗信息。

如图

从左至右是从暗到亮的像素分布,黑色三角代表最暗地方(纯黑),白色三角代表最亮地方(纯白)。

灰色三角代表中间调。

大家可以看到,我这张相片暗部像素少,亮部像素也少,那么就是灰蒙蒙的,就是说对比度较低的照片。

同理,其他的形式大家可以去推测,这里就不一一赘述了

2.修改色阶是什么:

修改色阶其实就是扩大照片的动态范围(动态范围指相机能记录的亮度范围),查看和修正曝光,调色,提高对比度等作用。

曝光过度就会亮度溢出,如图:

曝光不足则会暗部溢出:

这样的照片就是不行的,除非是特殊艺术效果需要。

不知大家发现没有,当调整过后,色阶就发生了断层,那是因为调整就是重新分配色阶分布状况,所以会引起间隙。

这样打个比方,比如10~20的东西,我们要将它变成0~30,那么自然中间会有间隙了。

这种间隙也是代表照片细节的破坏,所以才有人说,后期越多,照片破坏越严重了。

3.为什么是说扩大动态范围:

输入色阶和输出色阶本来是处于同样位置的,当我们调整过后,点击确定

就变成这样了,和上面说的一样,比如10~20的东西,我们要将它变成0~30,那么自然中间会有间隙了,但是10~20的范围是10,但0~30的范围是30,

那么就是说动态范围扩大了

这样调整后就是

我们可以看到,暗部更暗了,暗部到亮部像素都有分布了,然后我这张照片的对比度就提升了

4.为什么要这样调整,原理是什么:

大家可以看看,这是原图的直方图:

这张就是原图的直方图,让我们修改下,将黑色滑块向右移动到有像素的边缘,将白色滑块向左移动到有像素的边缘,例如,将黑色滑块移动到26色阶,

白色滑块移动到222色阶,这表示要将26色阶变成0阶(纯黑),222色阶变成255色阶(纯白)。

那么,就是说,26色阶本来有一种颜色(假定成灰色),我们将它变成0色阶,就是黑色,那么整张图的灰色部分全部变成黑色了,所以会变暗,白色滑块亦然,

所以黑的更黑,白的更白,那么整张图的对比度就上升了。

调整后如图所示:

从黑到白的地方全部有像素分布了,而以前只是在中间有,所以现在有很黑的地方,也有很白的地方,所以对比度就上升了

5.灰色滑块是干什么用的,灰色滑块指的是中间调,它可以改变中间调的亮度,是因为它左边代表整张相片的暗部,右边代表整张相片的亮部,

当我们将灰色滑块右移,就等于是有更多的中间调像素进入了暗部,所以会变暗,反之亦然

6.如何尽量避免色阶断层导致细节丢失?

在photoshop中,我们有很多图像模式可以选择,通常照片都是8位通道的,而16位通道蕴含的色域更广,我们可以先将图像转换成16位通道

再进行色阶的调整

出现了断层,那么我们再将模式转回到8位通道:

可以发现,断层就被填补了,尽可能的挽救了相片的细节

好了,色阶的教程就到这里了,还有一些其他的,比如调色,大家可以切换通道的选项到红绿蓝分别去调整,查看曝光正确与否在前面也说了,就是暗部溢出

和亮部溢出之类的,希望大家可以去实践,多用用才会记得的。

这篇教程就是临时胡乱写的,有什么错误和遗漏欢迎指正和补充

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2