数字图像处理基础

目录

概述

仿射变换

常见的灰度处理算法

空间域滤波原理

空间域平滑滤波(低通滤波)

空间域锐化滤波(高通滤波)

傅里叶变换

频率域与空间域的对应关系

频率域滤波

形态学处理基础知识

边缘检测原理

检测孤立点

检测线

边缘检测

基于梯度算子的边缘检测

基于LoG算子的边缘检测

基于Canny算子的边缘检测


笔记来自1-图像处理基础_哔哩哔哩_bilibili

概述

图像由矩阵形式存储,像素颜色深浅用不同灰度值来表示。

如何访问图像——图像有宽、高、通道(RGB),以多维数组的形式访问即可 

仿射变换

仿射变换=线性变换(直线变换后还是直线,直线比例保持不变)+平移

操作方式:左乘变换矩阵

还有平移、偏移等

常见的灰度处理算法

【图像反转】

原理:灰度级数-当前灰度      s=L-1-r

 【对数变换】

可以把图像低灰度的地方提亮

【Gamma变换】

其实就是幂指数矫正,目的是将灰度较窄的区域拉伸为较宽的区域,可改变对比度

【直方图均衡化】

由于图像的对比度不强所以图像整体上较亮或较暗(也就是图像灰度集中在直方图的两端)

为了增加对比度,让图像看起来更清楚所以有了直方图均衡化

空间域滤波原理

空间域就是指的图像中的每个像素单元

空间域图像处理主要包括灰度变换和空间域滤波

所谓滤波就是对图像进行处理,比如降噪、平滑等

【滤波】

对于图像的每个像素,把核在图像上覆盖区域的每个像素相乘相加求平均,这个过程又被称为卷积,然后把值填入中心像素

空间域平滑滤波(低通滤波)

平滑空间滤波器(作用是模糊处理——大目标提取之前先去掉图像中的琐碎细节和 降低噪声——典型噪声是由于灰度级的急剧变化引起的)

包括:

1.平滑线性滤波器(盒状滤波器)

        所有系数都相等的滤波器

↑核的尺寸越大越模糊,且当目标的灰度与其相邻像素的灰度相近时,会有模糊目标的混合效应

作用:为了对感兴趣的物体得到一个粗略的描述而模糊一幅图像,模糊之后,小目标和背景被拉的很近,此时再根据大目标的灰度值选一个阈值就能很好的提取目标

2.中值滤波器

        用像素邻域内灰度值的中值来替换目标像素

主要用于去除椒盐噪声。因为中值滤波相当于是用中值替换了白点黑点代表的最大值最小值

 

3.高斯滤波器

        

所以sigema越大,类似平均模板; sigema越小,类似中值模板

详细原理:

不同于均值滤波器模版系数都是相同的,高斯滤波器的模板系数随着距离模板中心的增大而减小

一个二维的高斯函数:

其中(x,y)是点坐标,sigema是标准差。要得到一个高斯滤波器,就对高斯函数进行离散化

例如3x3的高斯滤波器目标这样获得:先以中心位置为坐标原点

然后将各个位置的坐标代入高斯函数中,得到的值就是模板系数

空间域锐化滤波(高通滤波)

作用:突出灰度的过渡部分(比如寻找边界,增强图像)

锐化空间滤波器(原理:锐化操作主要是对图像求一阶导数和二阶导数)

平滑滤波使用邻域的均值/中值来代替模板中心的像素,削弱他们之间的差别,以达到平滑图像和抑制噪声的目的;而锐化滤波器使用邻域的微分作为算子,增大邻域间像素的插值!

1.Prewitt算子——一阶微分算子。用不同方向的算子可以检测不同类型的边缘或线

        

2.Sobel算子——一阶微分算子。用不同方向的算子可以检测不同类型的边缘或线

Sobel模板的中间值是2,通过突出中心点达到平滑的目的,比Prewitt多了平滑功能

3.拉普拉斯算子——二阶微分算子,可以检测到灰度突变的点

得到锐化图像后,将原图像加上或减去锐化结果,得到增强后的图像

傅里叶变换

核心:任何周期函数都可以表示为不同频率的正弦和、余弦和的形式

————欧拉公式

 

【二维傅里叶变换】

频率域与空间域的对应关系

在空间域的乘积对应在频率域的卷积;在频率域的卷积对应在空间域的乘积

频率域滤波

暂略qwq

形态学处理基础知识

图像处理领域用形态学数学处理工具来提取表达和描绘区域形状的有用图像分量

结构元——研究一幅图像中感兴趣特性所用的小集合或子图像

 结构元平坦——结构元的值是否存在不同灰度级

【腐蚀】

二值图像:

把结构元的原点放在图像的每一个像素的位置,对于B与A重合的部分,当B是A重合部分的子集时,该位置被标记为1,否则全为0

灰度图像平坦结构元:

把结构元的原点放在图像的每一个像素的位置,在任何位置的腐蚀为:包含在与b区域重合区域中的f的所有值的最小值

灰度图像非平坦结构元

把结构元的原点放在图像的每一个像素的位置,在任何位置的腐蚀为:包含在与b重合区域中的f减去b中的值的最小值

 (在图像中,负值是会被截断为0的)

【膨胀】——填补目标区域中某些空洞以及消除包含在目标区域中的小颗粒噪声

二值图像

灰度图像平坦结构元

把结构元的原点放在图像的每一个像素位置,在任何位置的膨胀为包含在与b翻转重合区域中的f的所有值的最大值

灰度图像非平坦结构元

【开运算】

先腐蚀后膨胀。腐蚀可以断开微弱连接,然后膨胀可以再平滑边缘

【闭运算】

先膨胀后腐蚀。膨胀可以将距离比较近的区域合并起来,再腐蚀掉比较小的区域

边缘检测原理

——以灰度局部剧烈变化为基础,检测图像中的点、线边缘

方法:用一阶微分和二阶微分为工具来达到检测目的

计算导数的原理——可以用空间滤波器计算每个像素处的导数

检测原理——

(1)一阶导数产生较粗的边缘

(2)二阶导数对精细细节,如细线、孤立点和噪声有较强响应

(3)二阶导数在灰度斜坡和灰度台阶处会产生双边缘效应

(4)二阶导数的符号可以确定是从亮到暗还是从暗到亮 

检测孤立点

过程:

1.对输入图像用拉普拉斯核进行卷积

2.对卷积结果进行公式操作

检测线

原理:拉普拉斯算子

优点:各向同性,线性和位移是不变的,对细线和孤立点检测效果较好

缺点:对噪声敏感,对噪声有双倍加强作用。不能检测出边的方向,常产生双像素的边缘

边缘检测

——原理:通过灰度突变来定位边缘位置

几种边缘模型

 边缘检测的基本步骤

(1)降噪——可以用高斯滤波器、均值滤波器、中值滤波器等

(2)边缘点的检测

(3)边缘定位

接下来介绍边缘检测的几种主要方法

基于梯度算子的边缘检测

举例

 梯度算子——用于计算梯度偏导数的滤波器模板

后续:对梯度图像进行阈值处理,降低噪声的干扰

因此,梯度算子的不足:未对图像噪声和边缘本身特性采取预防措施

基于LoG算子的边缘检测

LoG算子标准符号

基于Canny算子的边缘检测

(1)首先用一个高斯函数平滑图像,计算结果的幅度,然后使用梯度幅度和方向来估计每一点处的方向和边缘强度

(2)由于是用梯度算子,所以边缘会比较宽,因此下一步要细化边缘,方法是非最大值抑制。该方法的本质是指定边缘法线的许多离散方向

(3)遍历强边缘中所有的非零像素,对于每一个非零像素,找弱边缘中与其连通的像素,标记为边缘。否则置为0,然后将修改过的弱边缘加到强边缘图中即可。

相关推荐

  1. OpenCV-图像基础处理

    2024-04-09 06:52:07       20 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-09 06:52:07       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-09 06:52:07       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-09 06:52:07       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-09 06:52:07       20 阅读

热门阅读

  1. FPN网络

    FPN网络

    2024-04-09 06:52:07      14 阅读
  2. 「PHP系列」PHP 函数详解

    2024-04-09 06:52:07       18 阅读
  3. TypeScript尚硅谷学习

    2024-04-09 06:52:07       14 阅读
  4. Yocto - 如何给配方文件添加源码patch

    2024-04-09 06:52:07       15 阅读
  5. 【分布式】MIT 6.824 Lab 2C实现细节分析

    2024-04-09 06:52:07       13 阅读
  6. CV2不同图像插值方式的区别

    2024-04-09 06:52:07       9 阅读
  7. 【R语言基础】如何提取矩阵的上三角矩阵

    2024-04-09 06:52:07       12 阅读