《图像处理、分析与机器视觉》(第4版)阅读笔记——第五章 图像预处理
预处理不会增加图像的信息量,一般会降低熵。因此,从信息论的角度看,最好的预处理是没有预处理:避免(消除)预处理的最好途径是着力于高质量的图像获取。实际图像中的属于一个物体的相邻像素通常具有相同的或类似的亮度值,因此如果一个失真了的像素可以从图像中被挑出来,它也许就可以用其邻接像素的平均值来复原。
5.1 像素亮度变换
有两类像素亮度变换:亮度校正(brightness corrections)和灰度级变换(gray-scale transformation)。亮度校正在修改像素的亮度时要考虑该像素原来的亮度和其在图像中的位置。灰度级变换在修改像素的亮度时无须考虑其在图像中的位置。
5.1.1 位置相关的亮度校正
只有当图像退化过程是稳定的才能使用。实际中不存在。
5.1.2 灰度级变换
直方图均衡化(histogram equalization)增强了靠近直方图极大值附近的亮度对比度,减少了极小值附近的对比度。
缺点:
1)变换后图像的灰度级减少,某些细节消失;
2)某些图像,如直方图有高峰,经处理后对比度不自然的过分增强。这种方法通常用来增加许多图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。通过这种方法,亮度可以更好地在直方图上分布。这样就可以用于增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。
这种方法对于背景和前景都太亮或者太暗的图像非常有用,这种方法尤其是可以带来X光图像中更好的骨骼结构显示以及曝光过度或者曝光不足照片中更好的细节。这种方法的一个主要优势是它是一个相当直观的技术并且是可逆操作,如果已知均衡化函数,那么就可以恢复原始的直方图,并且计算量也不大。这种方法的一个缺点是它对处理的数据不加选择,它可能会增加背景杂讯的对比度并且降低有用信号的对比度。(【数字图像处理】直方图均衡化详解及编程实现)理论基础参考:直方图均衡化的数学原理
5.2 几何变换
几何变换可以消除图像获取时所出现的几何变形,由两个基本步骤组成,第一步是像素坐标变换(pixel co-ordinate transformation),将输入图像像素映射到输出图像。输出点的坐标将会是连续数值(实数),这是因为在变换后其位置不大可能对应于数字栅格。第二步找到与变换后的点匹配最佳的数字光栅中的点,并确定其亮度数值。该数值通常是用领域中的几个点的亮度插值(interpolation)计算的。
5.2.1 像素坐标变换
双线性变换(bilinear transform),需要至少4对对应点来解出变换系数:
仿射变换(affine transformation),比双线性变换更简单,需要需要3对对应点来解出变换系数:
雅可比行列式(Jacobian determinant)J提供了坐标系如何变化的信息。
几个重要的几何变换是:
- 旋转(rotation)
- 变尺度(change of scale)
- 歪斜(斜切)(skewing)
5.2.2 亮度插值
三种常用的插值方法:最近邻、线性、双三次(bi-cubic)。
最近邻插值(nearest-neighborhood interpolation):定位误差最大是半个像素。这种误差在物体具有直线边界时就会显现出来,在变换后可能会呈现阶梯状。
线性插值(linear interpolation):可能会引起小的分辨率降低和模糊,原因在于其平均化的本性,但是减轻了阶梯状直边界的问题。
双三次插值(bi-cubic interpolation):免除了最近邻插值的阶梯状边界问题,也解决了线性插值的模糊问题。
5.3 局部预处理
平滑(smoothing)目的在于抑制噪声或其他小的波动,这等同于在傅里叶变换或抑制高频部分。缺点:也会模糊所有的含有图像重要信息的明显边缘。
梯度算子(gradient operators)目的在于在图像中显现图像函数快速变化的位置。
5.3.1 图像平滑
在限制数据有效性下的平均(averaging with limited data validaity)
根据反梯度平均(averaging according to inverse gradient)
使用旋转掩膜的平均(averaging using a rotating mask)
中值滤波(median filtering):是一种减少边缘模糊的非线性平滑方法,思想是用领域中亮度的中指代替图像当前的点。邻域中的中值不受个别噪声毛刺的影响,因此可以很好地消除冲击噪声。
非线性均值滤波(non-linear mean filter)
5.3.2 边缘检测算子(edge detectors)
描述边缘的检测子使用偏导数。图像函数的变化可以用指向图像函数最大增长方向的梯度来表示。
Roberts算子:使用当前像素的2x2邻域,主要缺点是对噪声的高度敏感性,原因是仅使用了很少几个像素来近似梯度。
Laplace算子:缺点是它对图像中的某些边缘产生双重响应。
Prewitt算子
Sobel算子:水平和垂直边缘的检测。
Kirsch算子
5.3.3 二阶导数过零点
Laplacian of Gaussian(LoG)
difference of Gaussians(DoG)
5.3.4 图像处理中的尺度
尺寸空间滤波(scale-space filtering)
尺度空间图像(scale-space image)
5.3.5 Canny边缘提取
对受白噪声影响的阶跃型边缘是最优的。Canny检测子的最优性与以下的三个标准有关:
- 检测标准:不丢失重要的边缘,不应有虚假的边缘。
- 定位标准:实际边缘与检测到的边缘位置之间的偏差最小。
- 单响应标准:将多个响应降低为单个边缘响应。
5.3.6 参数化边缘模型
5.3.7 多光谱图像中的边缘
5.3.8 频域的局部预处理
最常见的图像增强问题包括噪声抑制、边缘增强和去噪,这些都能在频域内完成。
对于频率滤波,有几种滤波器很有用:其中两个重要代表是高斯滤波器和巴特沃斯滤波器。
另一种作用于频域的有用的预处理技术是同态滤波(homomorphic filtering),用于去除相乘性的噪声。增加对比度,同时在整幅图像内规范化图像亮度。减弱系数为0.5的巴特沃斯滤波器,可以保留适当的低频,使图像体现出更多细节。
5.3.9 用局部预处理算子作线检测
线寻找操作(Line finding operators)的目标是,寻找图像中的很细的线;它的假设是,曲线没有剧烈弯曲。常用卷积核如下:
....................................................
类似的原则还能应用于更大的模板,通常5x5大小的模版最常用。
5.3.10 角点(兴趣点)检测
Moravec检测器(Moravec detector)是最简单的角点检测器
Harris角点检测器(Harris corner detector)对二维平移和旋转、少量光照变化、少量视角变化都不敏感,而且其计算量很小。另一方面,当有较大变化、视角变化以及对比鲜明的剧烈变化时,它就失去了原先的不变性。
5.3.11 最大稳定极值区域检测
如果图像被缩放或经过射影变换,则Harris检测器的输出也会剧烈改变。
最大稳定极值区域(Maximally Stable Extremal Regions, MSER)是一种图像结构,不仅是在平移和旋转后,即便经历相似和仿射变换,它仍可被重复检测出来。
5.4 图像复原
在抑制退化而利用有关退化性质知识的预处理方法为图像复原(image restoration)
维纳滤波
《图像处理、分析与机器视觉》(第4版)阅读笔记——第五章 图像预处理相关推荐
- js高级教程阅读笔记 第五章-引用类型(5.6)
函数内部属性 函数中有两个特殊的对象. arguments:它包含了所有的参数,重要的是它的一个叫做callee的属性,用于指向拥有这个参数的函数.好处是什么呢 实例: function fa(num ...
- 深入理解 C 指针阅读笔记 -- 第五章
Chapter5.h #ifndef __CHAPTER_5_ #define __CHAPTER_5_/*<深入理解C指针>学习笔记 -- 第五章*//*不应该修改的字符串就应该用 co ...
- buc算法java实现,数据挖掘概念与技术(hanjiawei)阅读笔记--第五章(数据立方体技术)...
BUC 1.BUC(Botom-Up Construction)概念 从顶点方体向下计算冰山立方体 计算稀疏冰山立方体的算法 基于先验性质进行剪枝 ### 2.算法计算 例A(a1,a2,a3),B( ...
- 【Coq学习】Formal Reasoning About Programs 阅读笔记第五章
第五章 归纳关系与规则归纳 Inductive Relations and Rule Induction 类似于在第 2 章讨论过的归纳定义的集合或类型定义(inductive set or type ...
- 《Python编程:从入门到实战》(第2版)学习笔记 第5章 if语句
[写在前面]为进一步提高自己的python代码能力,打算把几本经典书籍重新过一遍,形成系统的知识体系,同时适当记录一些学习笔记,我尽量及时更新!先从经典的<Python编程:从入门到实战> ...
- PMBOK(第六版) 学习笔记 ——《第一章 引论》
系列文章目录 PMBOK(第六版) 学习笔记 --<第一章 引论> PMBOK(第六版) 学习笔记 --<第二章 项目运行环境> PMBOK(第六版) 学习笔记 --<第 ...
- ORB-SLAM2代码阅读笔记(五):Tracking线程3——Track函数中单目相机初始化
Table of Contents 1.特征点匹配相关理论简介 2.ORB-SLAM2中特征匹配代码分析 (1)Tracking线程中的状态机 (2)单目相机初始化函数MonocularInitial ...
- Java 核心技术卷 II(第 8 版) – 读书笔记 – 第 1 章(下)
22.一旦获得了一个 Charset,就可以在 Java 的 Unicode 和指定的编码格式之间进行转化,下面以 GBK 和 Unicode 之间做为例子. 从 Unicode 到 GBK: imp ...
- 数据库系统概论(第5版)学习笔记第1章 1.2——数据模型
数据库系统概论(第5版)学习笔记第1章 1.2--数据模型 目录 数据库系统概论(第5版)学习笔记第1章 1.2--数据模型 0.思维导图(自制) 1️⃣思维导图下载 2️⃣图示 1.2数据模型 1. ...
- 《图像处理、分析与机器视觉 第四版》数学形态学基本概念——学习笔记
文章目录 形态学基本概念 形态学基本概念 数学形态学作为图像分析的一个分支被广泛接受, 其基础是作用于物体形状的非线性算子的代数,它在很多方面都要优于基于卷积的线性代数系统. 在很多领域中, 如预处理 ...
最新文章
- 微软在.NET官网上线.NET 架构指南频道
- Java的正则表达式使用及案例
- 【bzoj 4059】Non-boring sequences
- 微信进行证书相关操作(退款,发放优惠券等)时报System.Security.Cryptography.CryptographicException: 出现了内部错误。...
- Spring Cloud Alibaba到底坑不坑?反正是解放了部分使用的繁琐!
- 微服务架构核心20讲
- Unity GeometryShader(从一个线框渲染的例子开始)
- 英伟达3060Ti安装GPU版本TensorFlow2.X
- IntelliJ Idea注释模板--类注释、方法注释
- 马云的经典语录(转载)
- python动态调用自定义模块_python importlib动态导入模块 reload重载模块
- Unity调用Android类方法
- 基恩士PLC实例笔记①--立项及编程
- 鸟哥的Linux私房菜服务器架设篇 第三版
- centos php ioncube_Linux安装Zend Guard和ioncube
- 安装ubuntu20.04无法连接wifi问题
- pygame中blit()的参数的说明以及脏矩形动画形成的简要说明
- Unsupported major.minor version 52.0那点坑
- [UWP]使用SpringAnimation创建有趣的动画
- 阐述游戏AI设计的两个禁忌及解决方法