对于有多个波峰焊机的直方图,图像复原采取那种方式好

如何使用直方图看懂照片
我想问一下,很多人都说让我学一下怎么看直方图,这样对照片后期很有帮助。我想问一下什么是直方图?应该如何看懂直方图?
已有1个回答
内容为广告/垃圾,我要举报!
特聘专家具有协助内容审核的特权
举报后内容将不能在前台展示
错乱举报会导致该权利被剥夺
选择举报原因×
& & 随着数码相机,图像处理技术的不断发展,越来越多的相机内置了直方图的功能。虽然直方图对初学者来说,还很陌生。但它却早已存在于我们的生活、工作中。如在著名的图像处理软件Photoshop里面,对应直方图的命令就是Histogram(中文版为“直方图”)。直方图的含义&& &摄影中的直方图横坐标是表示亮度分布,左边暗,右边亮,纵坐标表示像素分布。直方图能够显示一张照片中色调的分布情况,揭示了照片中每一个亮度级别下像素出现的数量,根据这些数值所绘出的图像形态,可以初步判断照片的曝光情况,直方图是照片曝光情况最好的回馈。无论照片是有丰富的高光表现还是曝光过度了,还是有饱满的细部暗调,或者是细节根本分辨不清,直方图都能很直观的显示。&& &对于一张曝光良好的照片,在不同的亮度级别下细节都应该非常丰富,各亮度值上都有像素分布,像一座起伏波荡的小山丘,为了方便观察,把直方图划分为5个区:每个区代表一个亮度范围,左边为极暗部、暗部,中间为中间调,右边是亮部和极亮部,根据这些不同亮度范围下像素出现的数量,对于高调照片山丘的峰顶应该集中在直方图右边的亮部区,对于低调照片山丘的峰顶应该集中在直方图左边的暗部区域,如果山丘覆盖了整个区域,说明曝光情况正好且细节清晰可见。直方图的特性&&& DC中的直方图功能与Photoshop中的是一样的。当直方图中的黑色色块偏向于左边时,说明这张照片的整体色调偏暗,也可以理解为照片欠曝。而当黑色色块集中在右边时,说明这张照片整体色调偏亮,除非是特殊构图需要,否则我们可以理解为照片过曝。下面,我们就用几张照片来直观地理解直方图所反映的图像特性。& & 上张正常曝光的建筑物照片及其对应的直方图。我们可以看到,在直方图中比较靠左的位置,波峰比较高而且比较密集,这是因为建筑物的背影有较多的暗部区域,而直方图中左侧的位置正是反映暗部区域的分布情况的。在直方图中央偏右的位置,我们又可以看到一个较高的波峰,这是因为图像中大片的黄色区域所对应的亮度正在这里。在直方图的最右端,我们可以看到一个较小且突出的波峰,对应在图像中,代表的就是建筑物上圆柱体的强烈反光,由于亮度太大,超出了直方图所能表示的范围,所以便体现在最右端形成了一个波峰。& & 根据直方图所表达的内容,这张图片的亮度基本都在其所能表现的范围内,并没有太多的溢出部分。更为关键的是,这张图片中各个物体的亮度,是符合我们的一般认识的,可以认为,这张图片的曝光是比较准确的。& &&在相同的情况下,如果我们拍摄的时候增加或者减少了曝光量,那么就会分别得到如上面左右两张图&&& 在左右两张图中,我们可以清楚地看到。如果增加曝光量,那么直方图中左侧表现暗部的部分几乎为一片空白。而如果减少曝光量,那么在直方图中就可以看到相反的结果。这样,如果我们看到了一张直方图,那么即使不看图像,也可以对它的明暗程度有一个准确的认识。& & 需要指出的是,并不是直方图中波峰居中且比较均匀的图像才是曝光合适的,判断一张图像的曝光是否准确,关键还是看它是否准确地体现出拍摄者的意图。比如通常的夜景图片,在直方图中就是暗部区域的波峰居多。& & 直方图中的大片黑色都集中在左侧区域,说明图像中的暗影部分很多,这也符合人们对夜景的一般概念。还有一个比较小的波峰出现在直方图的右端,对应在图像中就是灯光造成的高亮部分。虽然这张直方图中的图线并没有均匀地分布在中央的位置,但是由于拍摄的景物特殊,因此也是曝光正确的一个例子。这种情况在日常生活照片中比较少见,但是相信对于大家理解直方图的概念会有很大的帮助。实战直方图& & &在了解直方图的基本概念和表达的信息之后,我们如何才能将相关的知识应用到日常照片的拍摄中去呢?毕竟DC的EVF取景器和LCD液晶取景屏,都受到了本身亮度、色彩饱和度以及锐度等显示特性的限制,在对图像的表现上总会与实际存在一定的差异,直接影响我们对照片明暗程度(曝光量)的准确判断和选择。而直方图的出现,则正好补充了这点不足。& & 具体说来,直方图在DC中的应用可以分成两方面:一方面是可以在拍摄后检查图像的曝光情况;另一方面,就是在拍摄者按下快门前,给拍摄者提供一个准确的画面明暗分布参考,拍摄者能根据实际需要对曝光参数进行调整,保证照片的曝光准确性。& & 1.怎么使用直方图:目前的主流相机大多具备直方图的功能,以索尼F828数码相机为例。该机在拍摄前,根据取景的不同,在相机的LCD 取景屏上可以即时地显示对应的直方图信息(见图6)。如果当前直方图显示暗部信息过多,说明图像曝光不足,拍摄者就可以适当地增加曝光,使直方图中的曲线整体向右平移,从而得到正确的曝光。并可根据随时变化的直方图,确定是否已经调整到合适的曝光参数。反之亦然。& & 2.曝光量的调整:为了得到曝光合适的摄影作品,我们可以运用各种方法来改变曝光参数,直到直方图显示的图像的色阶分布达到我们的拍摄目的。下面将通过三个例子来给大家演示如何运用不同的拍摄技术达到准确曝光的目的(注:为更清晰地表现直方图,本文例子将用Photoshop中的直方图进行表示)。& & 方法一:利用曝光补偿功能,直接调整曝光量& & 上图香港铜锣湾热闹的夜市灯光,整个画面以各种灯箱招牌、霓虹灯为主。直方图的两个曲线波峰分别集中在两侧并溢出,这说明照片的明暗反差过高,画面中的亮部、暗部画面的细节都将会产生不可逆转的损失。通过分析当时的情况,很容易看出很多景物都被“隐藏”在直方图的暗部区域中,没有得到表现。& & 这时,我们通过增加0.3~0.7个曝光补偿(+EV)即可得到图8的效果。可以看到,刚才漆黑一片的景像已经增加了很多细节,而整个图像的表现也比较接近肉眼的感觉了。&&& 此时,如果再增加0.3~0.7个曝光补偿(+EV),就会得到像图9这样的效果:图像明亮了许多,但是暗部噪点明显增多,整个画面也全无夜景的氛围了。因此,如果像图9这样曝光,暗部的细节确实可以得到很充分的体现,但是亮部过曝太多,图像效果反而不好,这就是过犹不及的道理。因此,如果我们在直方图上看到了像图9这样的过曝所造成的亮部细节丢失严重的问题时,就可以通过减0.3~0.7个曝光补偿(-EV)来修正,以得到如上图的效果。& &&现在很多相机都提供了类似的曝光补偿功能快捷键,如果没有的话,也可在相机的菜单中找到相应选项。方法二:灵活使用测光方式& & 相机的曝光量是由其内置的测光程序在确定亮度等数据之后,结合机内的曝光数据计算得到的。在通常情况下,默认的测光程序都是中央重点测光,这种测光模式在多数情况下都可以得到正确的曝光参数。但是也有例外的情况,这时,我们就可以利用相机的点测光功能,并针对亮度为中性灰(近似于亮与暗的中间地带)的区域测光得到可以满足多数条件下合适的曝光参数。类似的测光方法还有多点测光等,要根据相机的具体功能,并结合使用经验加以应用。方法三:直接调整曝光参数& & 经验丰富的拍摄者则更可根据直方图的数据,大体估测出应该补偿的曝光量,手动对光圈、快门等曝光参数进行调整。不仅可以得到合适的曝光量,而且还可以根据实际的情况,结合景深、曝光速度的考虑得到更为合理的曝光参数。& & 改变曝光量的方法有很多,但无论采用何种方法,关键是要了解直方图的含义,才能确保在拍摄前对自己的拍摄结果做到心中有数,从而拍摄到色阶分布合理的图像。& & 3.使用直方图的真正含义:参考直方图信息确定曝光参数的真正含义是直接透视图像的内部信息,从而获得最合适的曝光参数,完全不会受到EVF或者LCD本身显示效果与实际图像曝光量差异的影响。由于图像相关的输入输出设备的物理特性都不一致,特别是在家用的环境中,更难得到一个严格意义上的统一的色彩描述,这也是造成我们拍摄时和拍摄后浏览、打印时所见并非所得的原因,而直方图抛开了图像表层的表现,以真实可靠的数据给我们一个可以量化的标准用于后期的输出。所以,要想成为一名小有水准的摄影爱好者,对直方图的了解是必不可少的。========================================================================相关问题欢迎进入交流希望以上内容对你有所帮助!
留下你的评论
微信公众账号ZOL问答堂
关注微信,随时随地解答您的疑惑
ZOL问答堂官方微博@ZOL问答堂
关注成功!该问题被回答后,将给您发送站内短信。
您也可以通过关注问答堂微信,及时获得您关注问题的回答。
微信关注问题方法“”一种基于直方图的分割方法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
一种基于直方图的分割方法
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢4639人阅读
计算机视觉(9)
图像直方图与直方图均衡化
图像直方图以及灰度与彩色图像的直方图均衡化
图像直方图:
图像的直方图用来表征该图像像素值的分布情况。用一定数目的小区间(bin)来指定表征像素值的范围,每个小区间会得到落入该小区间表示范围的像素数目。
图像直方图图形化显示不同的像素值在不同的强度值上的出现频率,对于灰度图像来说强度范围为[0~255]之间,对于RGB的彩色图像可以独立显示三种颜色的图像直方图。
同时直方图是用来寻找灰度图像二值化阈值常用而且是有效的手段之一,如果一幅灰度图像的直方图显示为两个波峰,则二值化阈值应该是这两个波峰之间的某个灰度值。
并且直方图是调整图像对比度的重要依据,直方图拉伸和直方图均衡化是两种最常见的间接对比度增强方法。
下面我将介绍如何用python绘制图像直方图,以及直方图均衡化的原理并给出灰度图与彩色图的直方图均衡化。
使用python绘制图像直方图:
在之前写的《python基本图像操作》中已经提到了如何用python去绘制图像的直方图,python的优点就是具有众多扩展库和更加易用,所以可以避免陷入算法细节从更宏观的角度实现自己的想法,所以用python绘制直方图非常简单:
使用Matplotlib绘制直方图
(灰度)图像的直方图可以使用 hist() 函数绘制:
hist() 函数的第二个参数指定小区间的数目。需要注意的是,因为 hist() 只接受一维数组作为输入,所以我们在绘制图像直方图之前,必须先对图像进行压平处理。flatten() 方法将任意数组按照行优先准则转换成一维数组。
from PIL import Image
from pylab import *
im = array(Image.open('./source/test.jpg').convert('L'))
hist(im.flatten(),128)
直方图的原理也很简单了,自己实现也非常简单,所以也没有必要再过多叙述,具体细节可以去看一下C++的实现。
直方图均衡化(Histogram Equalization):
直方图均衡化是非常有用的一种变换,直方图均衡化是指将一幅图像的灰度直方图变平,使变换后的图像中每个灰度值的分布概率都相同。在对图
像做进一步处理之前,直方图均衡化通常是对图像灰度值进行归一化的一个非常好的方法,并且可以增强图像的对比度。
如果一副图像的像素占有很多的灰度级而且分布均匀,那么这样的图像往往有高对比度和多变的灰度色调。直方图均衡化就是一种能仅靠输入图像直方图信息自动达到这种效果的变换函数。它的基本思想是对图像中像素个数多的灰度级进行展宽,而对图像中像素个数少的灰度进行压缩,从而扩展像原取值的动态范围,提高了对比度和灰度色调的变化,使图像更加清晰。
图像对比度增强的方法可以分成两类:一类是直接对比度增强方法;另一类是间接对比度增强方法。直方图拉伸和直方图均衡化是两种最常见的间接对比度增强方法。直方图拉伸是通过对比度拉伸对直方图进行调整,从而“扩大”前景和背景灰度的差别,以达到增强对比度的目的,这种方法可以利用线性或非线性的方法来实现;直方图均衡化则通过使用累积函数对灰度值进行“调整”以实现对比度的增强。
直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法。这种方法通常用来增加许多图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。
这种方法对于背景和前景都太亮或者太暗的图像非常有用,这种方法尤其是可以带来X光图像中更好的骨骼结构显示以及曝光过度或者曝光不足照片中更好的细节。这种方法的一个主要优势是它是一个相当直观的技术并且是可逆操作,如果已知均衡化函数,那么就可以恢复原始的直方图,并且计算量也不大。
这种方法的一个缺点是它对处理的数据不加选择,它可能会增加背景杂讯的对比度并且降低有用信号的对比度;变换后图像的灰度级减少,某些细节消失;某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。
直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。直方图均衡化就是对图像进行非线性拉伸,重新分配图像像素值,使一定灰度范围内的像素数量大致相同。直方图均衡化就是把给定图像的直方图分布改变成“均匀”分布直方图分布。
直方图均衡化的基本思想是把原始图的直方图变换为均匀分布的形式,这样就增加了象素灰度值的动态范围从而可达到增强图像整体对比度的效果。设原始图像在(x,y)处的灰度为f,而改变后的图像为g,则对图像增强的方法可表述为将在(x,y)处的灰度f映射为g。在灰度直方图均衡化处理中对图像的映射函数可定义为:g = EQ (f),这个映射函数EQ(f)必须满足两个条件(其中L为图像的灰度级数):
(1)EQ(f)在0≤f≤L-1范围内是一个单值单增函数。这是为了保证增强处理没有打乱原始图像的灰度排列次序,原图各灰度级在变换后仍保持从黑到白(或从白到黑)的排列。
(2)对于0≤f≤L-1有0≤g≤L-1,这个条件保证了变换前后灰度值动态范围的一致性。
累积分布函数(cumulative distribution function,CDF)即可以满足上述两个条件,并且通过该函数可以完成将原图像f的分布转换成g的均匀分布。此时的直方图均衡化映射函数为:
累计分布函数(CDF)就是是概率密度函数(probability density function/pdf)的积分,相信学过概率论的同学对他一定不陌生:
累积分布函数(cumulative distribution function)定义 对连续函数,所有小于等于a的值,其出现概率的和。F(a)=P(x&=a)
所以总结一下灰度图直方图均衡化算法的步骤就是:
(1) 根据输入的灰度图像计算其原始直方图
(2) 对输入的原始直方图进行累加,计算其cdf
(3) 使用累计分布函数的插值计算新的灰度值(这里我使用比较常用的线性插值)
使用python及其数学库的话求直方图和cdf的方法已经为我们封装好了,所以实现起来代码量是很少的:
# -*- coding: utf-8 -*-
from PIL import Image
from pylab import *
#读取图像到数组中,并灰度化
im = array(Image.open('./source/test.jpg').convert('L'))
#绘制原始直方图
subplot(231)
hist(im.flatten(),256)
#计算图像直方图(每个bins数组的区间值对应一个imhist数组中的强度值)
imhist,bins = histogram(im.flatten(),256,normed=True)
#计算累积分布函数
cdf = imhist.cumsum()
#累计函数归一化(由0~1变换至0~255)
cdf = cdf*255/cdf[-1]
#绘制累计分布函数
subplot(232)
plot(bins[:256],cdf)
#依次对每一个灰度图像素值(强度值)使用cdf进行线性插值,计算其新的强度值
#interp(x,xp,yp) 输入原函数的一系列点(xp,yp),使用线性插值方法模拟函数并计算f(x)
im2 = interp(im.flatten(),bins[:256],cdf)
#将压平的图像数组重新变成二维数组
im2 = im2.reshape(im.shape)
# 显示均衡化之后的直方图图像
subplot(233)
hist(im2.flatten(),256)
#显示原始图像
subplot(234)
imshow(im)
#显示变换后图像
subplot(236)
imshow(im2)
其中线性插值公式是最常用、最简单的插值公式。线性插值和双线性插值是图形学中常用的技术,旋转变换后图片会有一些不连续点,就是通过双线性插值法解决的,之后我会单独写一篇博客进行详细介绍,这里简单介绍一下线性插值的原理:
处理分离的数据,如果想知道分离点之间的某些值,需要用到某种类型的插值。
使用线性插值,通过连接两点的线段找到X=2.7对应的Y值
0.7* (maxY-min Y)+minY=0.7*(20-10)+10=0.7*10+10=17
(14-minX)/(maxX-minX) =(14-13)/(16-13)=0.33
0.33* (maxY-minY)+minY=0.33*(46-35)+35=0.33*11+35=3.67+35=38.67
顺便说一下,基本所有的线性插值返回的都是浮点数。
所以我们使用插值技术利用离散的cdf得出新的灰度强度值。
彩色图像的直方图均衡化(Histogram Equalization):
一幅彩色图像由RGB三色通道构成,每个通道都是描述了该种颜色的强度(0-255)的一幅灰度图,所以比较简单的应用于彩色图像的均衡化就是把每个颜色通道均衡化之后进行合成,下面是我的具体实现:
from PIL import Image
from pylab import *
import copy
im = array(Image.open('./source/test.jpg'))
r = im[:,:,0]
g = im[:,:,1]
b = im[:,:,2]
imhist_r,bins_r = histogram(r,256,normed=True)
imhist_g,bins_g = histogram(g,256,normed=True)
imhist_b,bins_b = histogram(b,256,normed=True)
subplot(331)
hist(r.flatten(),256)
subplot(332)
hist(g.flatten(),256)
subplot(333)
hist(b.flatten(),256)
cdf_r = imhist_r.cumsum()
cdf_g = imhist_g.cumsum()
cdf_b = imhist_b.cumsum()
cdf_r = cdf_r*255/cdf_r[-1]
cdf_g = cdf_g*255/cdf_g[-1]
cdf_b = cdf_b*255/cdf_b[-1]
subplot(334)
plot(bins_r[:256],cdf_r)
subplot(335)
plot(bins_g[:256],cdf_g)
subplot(336)
plot(bins_b[:256],cdf_b)
im_r = interp(r.flatten(),bins_r[:256],cdf_r)
im_g = interp(g.flatten(),bins_g[:256],cdf_g)
im_b = interp(b.flatten(),bins_b[:256],cdf_b)
subplot(337)
hist(im_r,256)
subplot(338)
hist(im_g,256)
subplot(339)
hist(im_b,256)
im_r_s = r.reshape([im.shape[0],im.shape[1]])
im_g_s = g.reshape([im.shape[0],im.shape[1]])
im_b_s = b.reshape([im.shape[0],im.shape[1]])
im_r = im_r.reshape([im.shape[0],im.shape[1]])
im_g = im_g.reshape([im.shape[0],im.shape[1]])
im_b = im_b.reshape([im.shape[0],im.shape[1]])
subplot(231)
imshow(im_r_s)
subplot(232)
imshow(im_g_s)
subplot(233)
imshow(im_b_s)
subplot(234)
imshow(im_r)
subplot(235)
imshow(im_g)
subplot(236)
imshow(im_b)
im_p = copy.deepcopy(im)
im_p[:,:,0] = im_r
im_p[:,:,1] = im_g
im_p[:,:,2] = im_b
subplot(121)
imshow(im)
subplot(122)
imshow(im_p)
figure1:RGB通道的原始直方图,cdf,均衡化后的直方图
figure2:RGB通道的原始图像,均衡化后的图像
figure3:原始图像,均衡化后的图像
本篇博客介绍了图像直方图和图像直方图均衡化的原理和方法,希望我的博客对大家有所帮助~
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:201396次
积分:3698
积分:3698
排名:第6997名
原创:86篇
评论:184条
欢迎光临我的博客,希望大家能共同学习,共同进步,写的不好的地方还请大家多多包含指正,o(≧v≦)o~~
文章:20篇
阅读:59240
阅读:34978
阅读:9486
文章:16篇
阅读:20672
阅读:6294
(1)(6)(4)(4)(4)(4)(4)(1)(5)(4)(5)(6)(8)(4)(4)(6)(6)(19)(2)
写的不好的地方还请大家通过评论,私信,qq()联系我,我会好好改正的!不要睬我的文章却不告诉我为什么,这样我也不知道不好在哪,谢谢

我要回帖

更多关于 波峰焊机 的文章

 

随机推荐