当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>Visual C++教程

VC++编程实现对曝光不足照片的修复

    引言

    一般来说,照相产生缺陷的原因主要有对焦不准、光圈选择不合适以及暴光不足等几种情况,前两种情况的偶然性较强,而曝光不足虽也具有一定的偶然性但对于某些特殊情况比如暗中侦察等不方便使用闪光灯的场合则较为普遍。因此,有必要对曝光不足的照片提出一种比较通用的照片修复处理方法。

    修复方法的设计

    根据照相的一般原理:物体反射的光线经过透镜投影到胶片上,胶片上的感光颗粒根据光线的强弱做出不同程度的分解从而显现出不同的颜色。当没有使用闪光灯或暴光时间过短而造成照片曝光不足时,照射在胶片上的光线强度不够或照射时间过短均会使感光颗粒分解不完全,冲洗出来的照片就会发暗,下图便是一幅实际的曝光不足照片,可以看出整幅照片很昏暗,除了位于左下的三、四个大字隐约可见外,几乎看不出该照片到底拍了些什么。

    虽然感光颗粒由于曝光不足而使照片显地昏暗,但由于同一胶片上的感光颗粒的感光程度仍是同真实物体所反射光线成比例的,因此在胶片上实际仍保存了真实物体的大部分信息,只是由于曝光不足造成的分解不完全使冲洗出的照片灰度分布过于集中,并超出了人眼对灰度级的分辨程度,才造成了视觉上的不可见。通过程序对照片做灰度分布统计(如下图所示)也可以看出照片的灰度分布主要集中在0 ~ 100之内,这显然是很暗的了。

    基于以上几点认识,在进行照片修复时只要将过于集中的灰度分布按照一定的规则将其均匀分布于整个灰度区间即可在视觉上得到相当程度的改善。在这方面的处理方法中,灰度均衡化和灰度规定化(含单映射和组映射两种规则)应用较为广泛,但后者需要根据图象的不同人为规定好适当的预期灰度分布规则才能得到满意的效果,如果预期灰度分布规定不当则处理效果会很差,因此后者的通用性不好。而前者在处理时则只需要将当前的灰度分布均衡的分布于整个灰度区间即可,虽然对于某一幅特定的图象处理效果可能不及灰度规定化,但通用性却要好的多,对任意的图象均可获得相当不错的处理效果。

共4页 首页 上一页 1 2 3 4 下一页 尾页 跳转到
相关内容
赞助商链接