数字图像处理知识点

数字图像处理期末考试的重点知识点
主要来源于课程PPT
内容类似于提纲性质,不会太过完整介绍
考试题目整理:https://blog.csdn.net/i0o0iW/article/details/112472730

图像表示及存储格式

图像格式

JPG,PNG,GIF,BMP……

无损压缩:PNG

存储动画:GIF

存储透明图:GIF,PNG

图像存储

在这里插入图片描述

获取像素

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h8PoSVBK-1610076673418)(C:\Users\1ceee\Desktop\2.png)]

已知像素p所在行列的坐标(x,y),写出p的八邻域坐标

(x-1,y-1)(x-1,y)(x-1,y+1)
(x,y-1)p(x,y)(x,y+1)
(x+1,y-1)(x+1,y)(x+1,y+1)

opencv中的左手坐标系:

在这里插入图片描述

已知P的内存地址ptr,求P的八邻域像素内存地址(8位3通道图像,step为一行的字节数)

ptr-step-3ptr-stepptr-step+3
ptr-3ptrptr+3
ptr+step-3ptr+stepptr+step+3

对一个32位浮点型3通道图像(CV_32FC3),行宽为step, 如果一个像素地址为p,写出其上、下、左、右像素的地址

p-step
p-4*3pp+4*3
p+step

遍历像素

在这里插入图片描述
在这里插入图片描述

基本图像处理

灰度变换

遍历图像中的像素,逐像素的进行变换:

  • 亮度调整Intensity Adjustment
  • 对比度调整Contrast Adjustment

L ′ = T ( L ) L , L ′ ∈ [ 0 , 255 ] L'=T(L) L,L' \in [0,255] L=T(L)L,L[0,255]
在这里插入图片描述

亮度调整

对像素处理,使图像整体变量或者变暗

在这里插入图片描述
在这里插入图片描述

变换函数:
在这里插入图片描述
在这里插入图片描述

其中幂律变换的幂次影响如下:
在这里插入图片描述

对比度调整

对比度变换可以理解为对像素处理,使亮的更亮,暗的更暗(增大对比度)

在这里插入图片描述
变换函数:

在这里插入图片描述
对比度拉伸:
在这里插入图片描述

插值

以放大图像为例,放大后图像的坐标映射到原图上是一个非整数,则可以根据如下方法获取其像素值

最近邻

在这里插入图片描述

双线性插值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HzlQDXGt-1610076673428)(C:\Users\1ceee\Desktop\16.png)]

这两种方式是等价的

一次双线性插值最少需要3次乘法运算

float bilinear(float a, float b, float c, float d, float dx, float dy)
{
       float  h1=a+dx*(b-a);           // = (1-dx)*a + dx*b
       float  h2=c+dx*(d-c);
       return h1+dy*(h2-h1);
}

双三次插值

a,b,c,d的确定:
在这里插入图片描述

如何计算导数:
f ′ ( x ) = ( f ( x + 1 ) − f ( x − 1 ) ) / 2 f'(x)=(f(x+1)-f(x-1))/2 f(x)=(f(x+1)f(x1))/2

邻域

直方图

直方图:统计各个灰度级的像素在图像总像素中所占的比例绘制成的图像

直方图均衡化

直方图均衡化就是一种能仅靠输入图像直方图信息自动达到这种效果的变换函数。它的基本思想是对图像中像素个数多的灰度级进行展宽,而对图像中像素个数少的灰度进行压缩,从而扩展像元取值的动态范围,提高了对比度和灰度色调的变化,使图像更加清晰.

变换函数:
s k = T ( r k ) = ( L − 1 ) ∑ j = 0 k p r ( r j ) = L − 1 M N ∑ j = 0 k n j s_k = T(r_k) = (L-1)\sum_{j=0}^kp_r(r_j) = \frac{L-1}{MN}\sum_{j=0}^kn_j sk=T(rk)=(L1)j=0kpr(rj)=MNL1j=0knj
例题:
在这里插入图片描述

p(0)=2/16=1/8,p(1)=3/16,p(2)=1/8,p(3)=1/8,p(4)=1/8,p(6)=1/8,p(8)=1/8,p(16)=1/16

T(0)=round(15*1/8)=2

T(1)=round(15*(1/8+3/16))=5

T(2)=round(15*7/16)=7

T(3)=round(15*9/16)=8

T(4)=round(15*11/16)=10

T(6)=round(15*13/16)=12

T(8)=round(15*15/16)=14

T(9)=round(15*16/16)=15
在这里插入图片描述

直方图规定化(直方图匹配)

直方图匹配要求实现:输出的图像具有规定的直方图的形状
在这里插入图片描述
z = G − 1 [ T ( r ) ] = G − 1 ( s ) z = G^{-1}[T(r)]=G^{-1}(s) z=G1[T(r)]=G1(s)
拓展到离散域:
在这里插入图片描述

图像滤波、图像梯度

线性滤波

滤波可分为低通滤波和高通滤波;低通:平滑,高通:锐化

Smoothing Filter

均值滤波

输出图像每个像素是核窗口内对应范围的所有像素的均值

使用积分图快速均值滤波

在这里插入图片描述

void  integral_image(const  uchar *src, int width, int height, int sstride, int *pint, int istride)
{
        int *prow=new int[width];

        memset(prow,0,sizeof(int )*width);

        for(int yi=0; yi<height; ++yi, src+=sstride, pint+=istride)
       {
            prow[0]+=src[0];  pint[0]=prow[0];   //for the first pixel
           
           for(int xi=1; xi<width; ++xi)
           {
                  prow[xi]+=src[xi];
                  pint[xi]=pint[xi-1]+prow[xi];
          }
      }

     delete[]prow;
}

在这里插入图片描述

高斯滤波

使用高斯函数作为滤波核

在这里插入图片描述

σ \sigma σ的值越大,越趋向于均值滤波

二维高斯滤波可以分离成两个方向的一维高斯滤波

Sharpening Filters

模板特点:

  • 滤波器应该在中心有正系数,而在边缘上有负的系数
  • 总和为零
导数滤波器

在这里插入图片描述

一阶导:
f ′ ( x ) = f ( x + 1 ) − f ( x ) f'(x)=f(x+1)-f(x) f(x)=f(x+1)f(x)
二阶导:
f ′ ′ ( x ) = f ( x + 1 ) + f ( x − 1 ) − 2 f ( x ) f''(x)=f(x+1)+f(x-1)-2f(x) f(x)=f(x+1)+f(x1)2f(x)
在这里插入图片描述

  • 一阶导产生的边缘可以有较大的宽度,如斜坡具有持续的亮度,这对边缘位置的确定是不利的,因为在寻找边缘的时候,我们希望确定准确的边缘位置
  • 二阶导在边缘处过零点,这是确定边缘的简单判别方式
  • 二阶导对噪声敏感,因此一般的图像处理中的二阶导施行之前,需要对图像进行高斯滤波,先行去除噪声
梯度

在这里插入图片描述

Roberts Operators

在这里插入图片描述

Prewitt Operators

在这里插入图片描述

Sobel Operators

在这里插入图片描述
高斯滤波:消除噪音的同时也使边缘变得模糊;
Sobel算子:消除噪音的同时使边缘锐化。
Sobel算子是在一个坐标轴的方向上进行非归一化的高斯平滑,在另外一个坐标轴方向上进行差分处理。

PS:5阶Sobel算子
在这里插入图片描述

Laplacian

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

边界处理

  • 边界填充
  • 边界附近调整滤波核大小

非线性滤波

中值滤波

输出图像每个像素是核窗口对应范围内所有像素的中值

有利于去除椒盐噪声

在这里插入图片描述

最大(小)值滤波

同理于中值滤波

频域图像处理、傅里叶变换

频率即信号进行周期性变化的速率

图像的频率:图像亮度/颜色在水平/垂直方向上周期性变化的速率

梯度!=频率:梯度是信号在空间(时间)域的变化率;频率是信号周期的变化率

频率的描述

“某种频率的成分”,涉及两个关键问题:

  • 确定“某种频率”:选择一组具有特定频率的信号(信号的基),且通过这组信号的组合可以表示其它任何的信号;

  • 计算“频率的成分”:对任意的输入信号,以及某给定的基信号(频率已知),计算该基信号所占的成分(系数);

傅里叶变换

相关公式集合:
一维连续傅里叶变换:
F ( u ) = ∫ x = − ∞ + ∞ f ( x ) e − 2 j π u x   d x F(u)=\int_{x=-\infty}^{+\infty} {f(x)e^{-2j\pi ux}} \,{\rm d}x F(u)=x=+f(x)e2jπuxdx
一维连续傅里叶逆变换:
f ( x ) = ∫ u = − ∞ + ∞ F ( u ) e 2 j π u x   d u f(x)=\int_{u=-\infty}^{+\infty} {F(u)e^{2j\pi ux}} \,{\rm d}u f(x)=u=+F(u)e2jπuxdu
一维离散傅里叶变换:
F ( u ) = 1 M ∑ x = 0 M − 1 f ( x ) e − 2 j π u x / M F(u)=\frac{1}{M}\sum_{x=0}^{M-1}f(x)e^{-2j\pi ux/M} F(u)=M1x=0M1f(x)e2jπux/M
一维离散傅里叶逆变换:
f ( x ) = ∑ u = 0 M − 1 F ( u ) e 2 j π u x / M f(x)=\sum_{u=0}^{M-1}F(u)e^{2j\pi ux/M} f(x)=u=0M1F(u)e2jπux/M
二维连续傅里叶变换:
F ( u , v ) = ∫ x = − ∞ + ∞ ∫ y = − ∞ + ∞ f ( x , y ) e − 2 j π ( u x + v y )   d x   d y F(u,v)=\int_{x=-\infty}^{+\infty} \int_{y=-\infty}^{+\infty} {f(x,y)e^{-2j\pi (ux+vy)}} \,{\rm d}x\,{\rm d}y F(u,v)=x=+y=+f(x,y)e2jπ(ux+vy)dxdy
二维连续傅里叶逆变换:
f ( x , y ) = ∫ u = − ∞ + ∞ ∫ v = − ∞ + ∞ F ( u , v ) e 2 j π ( u x + v y )   d u   d v f(x,y)=\int_{u=-\infty}^{+\infty} \int_{v=-\infty}^{+\infty} {F(u,v)e^{2j\pi (ux+vy)}} \,{\rm d}u\,{\rm d}v f(x,y)=u=+v=+F(u,v)e2jπ(ux+vy)dudv
二维离散傅里叶变换:
F ( u , v ) = 1 M N ∑ x = 0 M − 1 ∑ y = 0 N − 1 f ( x , y ) e − 2 j π ( u x / M + v y / N ) F(u,v)=\frac{1}{MN}\sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x,y)e^{-2j\pi (ux/M+vy/N)} F(u,v)=MN1x=0M1y=0N1f(x,y)e2jπ(ux/M+vy/N)
二维离散傅里叶逆变换:
f ( x , y ) = ∑ u = 0 M − 1 ∑ v = 0 N − 1 F ( u , v ) e 2 j π ( u x / M + v y / N ) f(x,y)=\sum_{u=0}^{M-1}\sum_{v=0}^{N-1}F(u,v)e^{2j\pi(ux/M+vy/N)} f(x,y)=u=0M1v=0N1F(u,v)e2jπ(ux/M+vy/N)
二维傅里叶变换行列分离:
F ( u , v ) = 1 M N ∑ x = 0 M − 1 e − 2 j π u x / M ∑ y = 0 N − 1 f ( x , y ) e − 2 j π v y / N F(u,v)=\frac{1}{MN}\sum_{x=0}^{M-1}e^{-2j\pi ux/M}\sum_{y=0}^{N-1}f(x,y)e^{-2j\pi vy/N} F(u,v)=MN1x=0M1e2jπux/My=0N1f(x,y)e2jπvy/N
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

快速傅里叶变换FFT

对于傅里叶变换:

在这里插入图片描述

在这里插入图片描述

基本思想及推导

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

频率域图像滤波

在这里插入图片描述

  1. 对输入图像乘以(-1) (x+y)以对图像进行移中
  2. 对1的结果进行二维离散傅立叶变换(DFT),计算F(u,v)
  3. 对F(u,v)乘上滤波函数H(u,v)
  4. 对3的结果进行离散傅立叶逆变换
  5. 取4的结果的实部
  6. 对5的结果乘上(-1) (x+y)获得空域的滤波后图像

形态学图像处理

集合论基础知识

在这里插入图片描述
在这里插入图片描述

腐蚀

在这里插入图片描述
在这里插入图片描述

膨胀

在这里插入图片描述

膨胀的另一个定义:
在这里插入图片描述
下图可能更容易理解:
在这里插入图片描述

开操作

在这里插入图片描述

闭操作

在这里插入图片描述

图像分割

将图像/视频帧按照特定的目标或要求划分成子区域的操作。

E.G.

语义分割:将属于同一物体的像素聚合到一起

前景提取:将感兴趣物体(前景)与其他区域(背景)分离

基本方法

图像分割算法一般基于亮度值的两个基本特征之一

  • 不连续性:图像边缘
  • 相似性:阈值处理、区域生长、区域分离和聚合
    基于相似性的分割

分类:

  • 基于亮度/颜色分布的方法: 阈值分割、K-means (K-均值)、 Mean Shift (均值漂移)
  • 基于区域的分割: 区域生长、区域分离与合并 、分水岭、活动轮廓(Snake)与水平集(Level-Set)方法
  • 基于图的分割:Graph Cut (图切割)、Geodesic (测地距离)、 Random Walks (随机游走)

基于亮度/颜色分布的方法

阈值分割

对像素的亮度进行阈值化处理(利用亮度分布的不连续性)

关键在于阈值选择,可以根据直方图或者手工选择

图像的不同区域具有不同的亮度分布,因此全局阈值不一定能适合所有区域

局限性

  • 阈值难以确定
  • 仅适用于灰度图(1维空间),对彩色图像难以定义阈值

K-means

在这里插入图片描述
在这里插入图片描述

Mean Shift

  • 无需指定类别个数,得到的类别个数等于找到的密度极大值个数
  • 得到的类别个数取决于窗口大小(仍需手工指定)

基于区域的分割

区域生长

以一组种子点开始,将与种子点相似的相邻像素附加到生长区域的每个种子上

区域分离与合并

将图像任意分为一系列不相交的区域,将这些区域按照一定条件进行合并/或拆分

基于图的分割

图切割

在这里插入图片描述

随机游走

测地距离

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

卷积神经网络

Batch Normalization

Internal Covariate Shift

指在深层网络训练过程中,由于网络中参数变化引起内部节点数据分布发生变化

问题:

  • 上层网络需要不断适应数据分布的变化,导致学习速率变慢
  • 网络训练过程容易陷入梯度饱和,减缓网络收敛速度

在这里插入图片描述

Batch Normalization思路

  • 既然数据分布发生了变化,那么就对输入的特征进行Normalization,使之具有均值为0,方差为1的分布就可以了
  • 但这样改变了每一层的分布,从而改变了网络中数据的表达能力。所以BN对变换后的数据进行了一个线性变换操作,使之尽可能恢复本身表达能力
    在这里插入图片描述

使用

在这里插入图片描述

Dropout

在前向传播的时候,让某个神经元的激活值以一定的概率p停止工作,这样可以使模型泛化性更强,因为它不会太依赖某些局部的特征

在这里插入图片描述

优化方法

SGD

每一次迭代计算mini-batch的梯度,然后对参数进行更新

在这里插入图片描述

问题:

  • learning rate的选择
  • 容易收敛于局部最优,可能会困在saddle points

SGD+Momentum

在这里插入图片描述
在这里插入图片描述

AdaGrad

在这里插入图片描述

AdaGrad其实对学习率进行了约束

  • 代码中grad_squared较小的时候,后边约束项较大,能够增大梯度
  • 较大的时候反之起到约束梯度的作用
  • 但仍然需要人工设置学习率
  • 后期约束项分母逐渐累积导致梯度趋近于0,step_size衰减趋近于0

在这里插入图片描述

RMSProp

在这里插入图片描述

Adam

在这里插入图片描述

正则化

在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值