zoukankan      html  css  js  c++  java
  • 数字图像处理学习笔记之二 灰度变换与空间滤波

    综述

    对于图像的处理有两种思路,一种是对图像本身的直接处理,即空间域处理;另一种是在频率域进行处理。关于空域和频域,可以参考《傅里叶变换——另一种世界观》。在空间域的处理相对简单,因此首先介绍的是空域处理法。空域中有两种重要处理方法:灰度变换(或亮度变换)和空间滤波(或邻域处理、空间卷积)。

    空间域处理:灰度变换和空间滤波

    g(x,y)=T[ f(x,y) ]

    空域处理的思路可以由上式表达。f 即是原图,T 是在点(x,y)指定邻域上的图像处理算子,g 是输出图像。当邻域为1*1大小时,T 为灰度变换算子;邻域大于1*1时,T 为空间滤波算子。

    灰度变换可以考虑每一个像素的灰度(点处理),也可以考虑整体灰度后再处理一个个像素(直方图处理)。空间滤波是每次考虑一块像素,进行卷积操作。

    进行灰度变换可以使用MATLAB工具箱函数,也可以自己编写函数。首先介绍的是直接进行点处理的函数,这些函数来自MATLAB图像处理工具箱。之后会介绍直方图处理、空间滤波。

    灰度变换函数(来自MATLAB工具箱)

    • 灰度映射: g = imadjust( f, [low_in high_in], [low_out high_out], gamma )
    • 动态范围操作:对数变换和对比度拉伸变换。
    • 任意灰度的灰度变换:给定灰度变换的列向量,使用interp1查找并替换。

    直方图处理

    直方图反映了图像像素灰度的分布情况。

    • 绘制直方图:imhist(f, b)(f为图像,b是灰度刻度), bar, stem, plot。
    • 直方图均衡化:将输入图像的灰度级均匀分布于较宽范围内,采用均衡化,使用histeq(f)函数实现。原理可以参考《直方图均衡化》。
    • 直方图匹配(规定化):很多时候均衡化并不能实现预期效果,因为均衡化不会对每一个输入图像区别对待,只是例行算法,将灰度级均匀分布而已。为了实现预期效果,采用直方图规定化方法,将灰度级做指定。使用histeq(f, h)实现,h为规定的灰度级比例。
    • 对比度受限的自适应直方图均衡(Contrast-Limited Adaptive Histogram Equalization):通过adapthisteq()函数实现。

    空间滤波

    空间滤波是在空域进行的滤波操作,有线性空间滤波和非线性空间滤波。线性空间滤波是对目标像素点的领域进行整体考虑,对窗口内的每一个元素乘以系数后求和,并作为目标像素点的响应。非线性空间滤波的思路与线性不同,其操作是非线性的,比如中值滤波、排序滤波等。

    线性空间滤波常用imfilter和fspecial函数实现,非线性空间滤波常用nlfilter和colfilt函数实现。

    平滑与锐化

    空间滤波有很多应用场景,平滑和锐化是两个典型的应用场景。平滑可以使用平滑模板对图像进行线性空间滤波,也可以使用中值滤波对图像进行非线性空间滤波。锐化可以使用锐化模板对图像进行线性空间滤波。

    平滑模板示例:
    [ 0.1  0.1  0.1
    0.1  0.2  0.1
    0.1  0.1  0.1 ]

    锐化模板示例:
    [ 0    1    0
    1  -4    1
    0    1    0 ]

  • 相关阅读:
    本月时间按天显示
    微信小程序----当前时间的时段选择器插件(今天、本周、本月、本季度、本年、自定义时段)
    vuex进行传值
    echart 自定义 formatter
    git 登录流程
    Java学习-反射
    mysql数据类型char、varchar、text的一些区别
    微信小程序踩坑记录
    Rancher、Helm、HelmFile
    句子迷 2015_01_10
  • 原文地址:https://www.cnblogs.com/hizhaolei/p/8051487.html
Copyright © 2011-2022 走看看