zoukankan      html  css  js  c++  java
  • 数字图像处理直方图均衡化

    数字图像处理课,老师布置了7道实验题,要求是语言不限,但不能调用现成算法,这些题目有点难度,但题目本身基本涵盖了这门课中所有重要的内容。为了方便学弟和同道中人完成练习,也为了记录下方便以后回顾经典的算法,所以我将一题一题分析。

     

    Histogram Equalization (test images: fig1.jpg, fig2.jpg)

    (a) Write a computer program for computing the histogram of an image.

    (b) Implement the histogram equalization technique.

    (c) Your program must be general to allow any gray-level image as its input.

    As a minimum, your report should include the original image, a plot of its histogram, a plot of the histogram-equalization, transformation function, the enhanced image, and a plot of its histogram. 


    背景

    直方图均衡化通常用来增加许多图像的全局对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。

    这种方法对于背景和前景都太亮或者太暗的图像非常有用,这种方法尤其是可以带来X光图像中更好的骨骼结构显示以及曝光过度或者曝光不足照片中更好的细节。这种方法的一个主要优势是它是一个相当直观的技术并且是可逆操作,如果已知均衡化函数,那么就可以恢复原始的直方图,并且计算量也不大。这种方法的一个缺点是它对处理的数据不加选择,它可能会增加背景噪声的对比度并且降低有用信号的对比度。

    书本中的原理


    Matlab实现

     

    效果与演示

    fig1.jpg原图,直方图均衡化后效果

    fig2.jpg原图,直方图均衡化后效果

     

    体会

    直方图均衡化主要是利用统计的思想建立原图像与新图像灰度值的关系,最终让图像的灰度变的均衡。从最终的结果来看第二张图的效果比较好,而第一张图虽然对比度增加了,但与此同时引出了很多椒盐噪声。


  • 相关阅读:
    Java中static、final、static final的区别(转)
    Google的JSON风格指南
    Google代码风格指南
    Java中的final关键字(转)
    Java的不定参数(eg:Object...)(转)
    Java Enum枚举的用法(转)
    Java中包装类型和基本类型的使用场景(什么时候使用包装类型)(转)
    Java常用的集合类(转)
    使用Swagger生成Spring Boot REST客户端(支持Feign)(待实践)
    Java搜索引擎选择: Elasticsearch与Solr(转)
  • 原文地址:https://www.cnblogs.com/hainange/p/6152995.html
Copyright © 2011-2022 走看看