精华内容
下载资源
问答
  • 《数字图像处理》

    2016-05-23 09:23:00
    数字图像处理几种具体算法 1.局部处理 以单一像素为处理单位, 图像的移动平均平滑法和空间域锐化 分类: (1)点处理(图像对比度增强、图像二值化) (2)大局部处理:傅里叶变换(全局处理) 2.迭代处理 图像细化...

    数字图像处理几种具体算法

    1.局部处理
    以单一像素为处理单位,
    图像的移动平均平滑法和空间域锐化
    分类:
    (1)点处理(图像对比度增强、图像二值化)
    (2)大局部处理:傅里叶变换(全局处理)
    2.迭代处理
    图像细化处理
    3.跟踪处理
    用于边界线、等高线等线的跟踪(检测)方面如根据搜索法检测边缘曲线
    4.窗口处理和模板处理
    窗口处理:矩形区域
    模板处理:任意形状区域
    5.串行处理和并行处理
    串行:依次(顺序)
    并行:同时进行相同形式运算(独立)

    图像的数据结构

    数据结构指在处理系统中图像数据的存储方式
    1.组合方式
    一个字长多个像素灰度值
    2.比特面方式
    像素按比特位存取,所有像素的相同比特位用一个二维数组表示
    3.分层结构
    代表:锥形(金字塔结构)
    4.树结构
    二等分,主要用于特征提取和信息压缩
    5.多种图像数据存取
    以多光谱为例:
    (1)逐波段存储BSQ(Band Sequential),分波段处理时采用
    (2)逐行存储BIL(Band Interleaved by Line),逐行扫描记录设备采用
    (3)逐像素存储BIP(Band Interleaved by Pixel),用于分类

    图像变换

    傅里叶变换(频率变量)
    连续函数的傅里叶变换
    离散函数的傅里叶变换
    其他变换
    沃尔什变换
    哈达玛变换
    离散余弦变换
    小波变换
    小波:“小”:衰减性;“波”:波动性,振幅呈正负相见的震荡形式。
    连续小波变换
    离散小波变换

    图像增强

    提高图像清晰度;转换成更适合于人或机器分析处理的形式,主要包括:1.消除噪声,改善图像的视觉效果;2.突出边缘,有利于识别和处理
    包括空间域增强和频率域增强
    950769-20160610165617402-892120626.jpg
    灰度级校正:在图像采集系统中对图像像素进行修正,使整幅图像成像均匀."溢出"现象需修正
    灰度变换:使图像动态范围增大,图像对比度扩展,图像变清晰,特征明显,是图像增强的重要手段之一;线性变换,分段线性变换,非线性灰度变换
    线性变换:曝光不足或过度,灰度局限在很小的范围,采用线性变换使每一个像素作线性拉伸,有效的改善图像视觉效果
    分段线性变换:为了突出感兴趣的目标或灰度区间,相对抑制那些不感兴趣的灰度区间
    非线性变换:
    对数变换-对低灰度区间进行较大的拉伸而对高灰度区压缩,灰度分布与人的视觉特性相匹配
    指数变换:对高灰度区较大拉伸
    直方图均衡化:通过对原图像进行某种变换,使原图像的灰度直方图修正为均匀分布的直方图的一种方法。基础:变换函数控制灰度级概率密度函数;实质是减少灰度等级换取对比度的扩大,频率小的压缩,大的部分增强
    直方图规定化(直方图匹配):使原图像灰度直方图变成规定形状的直方图而对图像作修正的增强方法。应用于图像融合中
    局部统计法:用局部均值和方差进行对比度增强的方法

    空间域

    950769-20160611102357183-264479841.png
    局部平滑法:直接在空间域上进行平滑处理的技术,用像素邻域内的各像素灰度平均值代替像素原来的灰度值;非加权邻域平均,缺点降低噪声的同时使图像产生模糊,特别是在边缘和细节处;改进:保边缘、保细节的局部平滑算法
    超限像素平滑法:选定的阈值,对抑制椒盐噪声较有效,对保护仅有微小灰度差的细节和纹理也有效
    灰度最相近的K个邻点平均法:窗口中心像素灰度值可用窗口内与中心像素灰度最邻近的K个邻像素的平均灰度来代替
    梯度倒数加权平均法:图像平滑,又不使边缘和细节有明显的模糊
    梯度:相邻像素灰度差
    权:中心像素与其各相邻像素之间梯度倒数定义为各相邻像素的权
    最大均匀性平滑:先找出环绕每个像素最均匀(灰度变化最小)的窗口,然后利用窗口的灰度均值代替该像素原来的灰度值,多次迭代可增强平滑效果,对复杂形状的边界会过分平滑使细节消失
    有选择保边缘平滑法:对最均匀平滑法的改进,掩模,以方差作为各个邻域灰度均匀性的测度
    空间低通滤波法:应用模板卷积方法对图像的每一个像素进行局部处理,模板(掩模)就是一个滤波器,必须保证全部权系数为1
    多幅图像平均法:同一景物的多幅图像相加取平均来消除噪声
    中值滤波:对一个滑动窗口内的诸像素灰度值排序,用中值代替窗口中心像素灰度值的滤波方法,非线性平滑法,对脉冲干扰及椒盐噪声的抑制效果较好,在抑制随机噪声的同时有效保护边缘少受模糊
    梯度锐化法:对一幅图像中突出的边缘区,梯度值较大;平滑区梯度值较小;灰度级为常数区域,灰度值为零
    Roberts梯度算子:
    950769-20160611112827511-240473661.png
    950769-20160611112833668-1982781717.png
    Prewitt算子:为在锐化边缘的同时减少噪声的影响,加大边缘增强算子的模板
    950769-20160611112356011-519019712.png
    950769-20160611112403090-1776870486.png
    Sobel算子:
    950769-20160611112442090-675682742.png
    950769-20160611112451230-2140656354.png
    五种增强图像:
    1.使各点灰度等于梯度,缺点仅显示灰度变化比较陡的边缘轮廓,而灰度变化比较平缓或均匀的区域呈黑色
    2.灰度大于阈值的区域显示为梯度
    3.边缘用固定的灰度级Lg表示
    4.背景用固定的灰度级Lb表示
    5.明显边缘和背景分别用灰度级Lg和Lb表示,生成二值图像
    Laplacian增强算子
    线性二阶微分算子,特点:
    1.灰度均匀或斜坡中间,微分值为0,增强算子不起作用
    2.斜坡底或低灰度侧形成“下冲”,斜坡顶或高灰度侧形成“上冲”,算子具有突出边缘的特点。对应模板啊;
    950769-20160611135855590-1432225489.png
    高通滤波法
    在空间域用高通滤波算子和图像卷积来增强边缘

    频率域

    转载于:https://www.cnblogs.com/DaisyXuRan/p/5518711.html

    展开全文
  • 大学《数字图像处理》知识点总结
  • 冈萨雷斯版《数字图像处理》教材中所有自定义MATLAB代码实现。
  • 《数字图像处理》 冈萨雷斯版图片,数字图像处理常用经典图片
  • 武汉大学《数字图像处理》知识点总结
  • 《数字图像处理》课程教学大纲
  • 《数字图像处理》读书笔记2:数字图像处理基础1 人类视觉感知1.1 眼睛构造图1.2 基本概念:1.2.1 亮度适应(Brightness Adaptation)1.2.2 主观亮度(Subjective Brightness)1.3 亮度辨别能力2 光和电磁波谱2.1 基本...

    1 人类视觉感知

    1.1 眼睛构造图

    在这里插入图片描述
    眼睛还是比较复杂的,至少涉及到下面10个零件:

    1. 角膜(cornea),眼睛前面的硬而透明的组织,保护眼睛的作用。

    2. 巩膜(sclera), 角膜之外的表面都由sclera包裹。

    3. 脉络膜(choroid), 包含血管网,提供眼睛的养分。

    4. 睫状体(ciliary body) 位于脉络膜前部 ,其上的纤维负责悬挂晶状体(lens)。

    5. 虹膜(Iris) 也位于脉络膜前部,通过收缩和扩张控制进入眼睛的光量。中间的开口就是瞳孔。

    6. 晶状体(lens) 由睫状体纤维悬挂,能够吸收8%的可见光谱,对短波长的光有较高吸收率。蛋白质负责吸收红外光和紫外光。lens可以自动调节厚度。

    • 人眼对焦是靠睫状肌的拉伸来改变晶状体的形状,也就是改变其焦距(或者说屈光度)来实现。
    • 看远处物体,睫状肌放松,晶状体扁平,屈光度最小,焦距最大。
    • 看近处物体,睫状肌收缩,晶状体变凸,屈光度变大,焦距变短,从而在眼轴长度不变的情况下,保证成像在视网膜上。
    • 长时间看近处会造成睫状肌痉挛,也就是晶状体过凸,焦距过小,是为假性近视。
    • 长期看近处,会造成眼轴永久性变长,超出晶状体最大焦距,是为真性近视。
    • 当人变老,晶状体会慢慢变硬,从而丧失调焦的能力。人眼也就从「变焦」成为「定焦」。这时看近处的物体,就需要靠外加凸透镜(老花镜)来屈光。

    7. 视网膜(Retina) 布满整个后部的内壁。来自眼睛外部的光在视网膜上成像。视网膜上分布了两种光感受器,锥状体和杆状体。

    8. 锥状体有600-700万个,成为中央凹,位于视网膜中间部分。每隔锥状体都有自己的神经末梢,既能感光,也能感色。对颜色高度敏感,构成白昼视觉或亮视觉

    9. 杆状体有7500-15000万个,几个杆状体共用一个神经末梢。没有彩色感觉,用来给出视野内的一般总体图像,对低照明度敏感,换句话说,只能感光,不能感色。感光灵敏度极高,是锥状细胞感光灵敏度的10,000倍,构成暗视觉或微光视觉

    锥状体和杆状体分工,明亮的环境下,锥状体起主导作用,昏暗的环境下,杆状体起主导作用。

    10. 盲点,视网膜上没有光感受器的地方就叫盲点。

    1.2 基本概念:

    1.2.1 亮度适应(Brightness Adaptation)

    包括暗适应(Scotopic)和亮适应(Photopic) 两种情况。
    从明亮到昏暗环境,叫做暗适应。反之,叫做亮适应。从上面描述的锥状体和杆状体可以知道,当暗适应的时候,眼睛要调节杆状体发挥作用。亮适应调节速度要比暗适应快。

    1.2.2 主观亮度(Subjective Brightness)

    指的是人的视觉系统感知的亮度。
    如图所示:x轴是光的强度的对数,y轴是主观亮度,y=f(x),而函数f就是对数。
    在这里插入图片描述
    曲线的含义:

    • 主观亮度 和 客观亮度的对数 成线性关系。为什么用对数(Logarithm),感觉这里用它做放大的,毕竟[0.001, 0.1]之间距离太小,用对数转换成[-3, -1] 之间的距离比较好观测。这里用的是10为底数的对数。
    • 人眼可以适应的范围很广,从Scotopic threshold到Glare limit。但是这个范围又被分为若干个亮度适应级别(Brightness Adaptation Level), 图上的两段较短的曲线段就是两个亮度级别。当光的强度达到一定层度,人眼就会从较低的亮度适应级别调整到较高的亮度适应级别。当光的强度突然下降到低于Bb所在的强度时,人眼会有短时间的看不见的现象,然后当调整回到较低的亮度适应级别,又能看到东西了。

    1.3 亮度辨别能力

    反射表面是由折射率不同的两种 材料的物理边界如空气和组织的界面组成

    反射定义为电磁辐射在入射表面上的返回,分为:镜面反射和漫反射

    漫反射是生物组织的一个 共同现象,因为它们没有一个像光学反射面的表面那样的抛光表面。

    韦伯比(Weber ratio) 用来表达亮度辨别能力, 公式是:ΔIc/I 。 这和一个实验有关系,一块很大的占据观察者全部视野的漫反射体(可能是毛玻璃),背后用强度I的光线照射。然后增加光的强度,增加的部分用变量ΔI表示。当观察者察觉到亮度变化时,取该值的50%,用变量ΔIc表示,并计算ΔIc/I的值,越小说明观察者的亮度辨别能力越好。反之这个观察者眼睛不咋的。

    前文已经提到,对数可以用来做放大器。下面的图表X和Y轴都用了对数做放大。
    在这里插入图片描述
    可以看出,在客观亮度较小时,韦伯比较大,因此人眼此时的亮度辨别能力较差。随着客观亮度的增加,韦伯比变小,人眼亮度辨别能力增强。不过简单的函数并不能完全解释亮度辨别能力。

    马赫带(Mach bands) 描述了视觉的上冲和下冲现象。

    同时对比(Simultaneous contrast) 解释了不同的背景下的同一物体被观测出来的亮度不一样。

    另外还有被深入理解的 “错觉”(Optical illusion)。

    2 光和电磁波谱

    2.1 基本概念

    电磁波 没有质量的粒子流,每个粒子以波的模式并用光速向前运动。

    光子 每个粒子包含一束能量,每束能量叫做一个光子。因此,一个光子就是一个粒子所带的能量。光子的能量单位是 电子伏特。

    波长 粒子以正弦波的形式运动,两个波峰之间的距离就是波长。λ,读作“拉姆达”。波长的单位是米,微米或者纳米。

    频率 表示一秒钟经过了多少个正弦波。单位是Hz, 1Hz表示一秒钟经过了一个正弦波。

    波长和频率的关系:(c是光速)

    • λ=c/vλ = c / v

    光子能量与频率成正比

    • E=hvE=hv
      h 为 普朗克常数,v为频率。

    频率越高,能量越大,所以伽玛射线对活体组织危害很大

    是一种可被人眼感知的电磁波。所以这是个很主观的定义,如果铁血战士能看到的是伽玛射线,它可能会称伽玛射线为“光”。对人而言,可见光只占电磁波的一小部分。用棱镜可以将白光分解成连续的色谱:红,橘黄,黄,绿,蓝,紫色。如下图:
    在这里插入图片描述

    2.2 电磁波谱与可见光谱的关系

    在这里插入图片描述
    在这里插入图片描述
    可见光的波段:从紫色的0.43µm 到 红色的0.79µm.

    2.3 反射光与人的视觉

    人看到物体的颜色取决与物体反射的可见光谱。 比如天为什么是蓝色的,简短来说,是因为空气分子散射波长较短的蓝光造成的,而更短波长的紫色虽然被散射,但人眼对紫光不敏感。

    无色光,又叫单色光。唯一的属性是光的强度。随着强度的增加,从黑色到灰色,最后到白色。问题是,如果是白色,其实就可以理解为彩色可见光的组合,还能认为是无色光么?所以无色光似乎又是一种人的主观感觉。

    **灰度级:**灰度级用来表示光的强度,所以灰度级和强度等价。

    单色图像:单色图像也叫做灰度图像。

    彩色光源的质量

    • 发光强度 从光源流出能量的总量,单位是瓦特(W)
    • 光通量 观察者感受到的能量,单位是流明数(lm), 这个取决与观察者是否能感知。比如远红外有发光强度,但是不能被观察者感知,因此光通量为0.
    • 亮度 是人的主观感知,不能被度量。

    电磁波成像的基本限制
    可以设计一些传感器通过检测物体发来的电磁波来成像。但是这些用于成像的电磁波段必须小于物体的尺寸。比如要对水分子成像,传感器就必须能接受到水分子传来的波段为远紫外或软X射线范围的电磁波。因为它们的波长小于水分子的直径:10e-10m

    3 图像感知与获取

    3.1 图像感知和获取

    如今的两种主要成像光源:一是光照源的组合;二是能量的吸收和反射成像
    对于成像的光源非常普遍,有传统的光源和非传统的光源,根据光源的性质可以分为反射和透射光源两种。
    根据光源的特性,我们创造了图像传感器,其基本原理足将输入的光,根据输入的电
    子能最与感知器材料相结合的特性,转换成一个响应电压,然后将其转化成可测量的能量形
    式。
    在这里插入图片描述

    3.2 单个传感器获取图像

    对于单个传感器,域为熟悉的是光电二极管,由硅构成,输出的波形与光成正比,然后
    安装在传感器前的过滤器提升了选择能力,可以选择自己想要的光源。其原理是:将负片装
    在鼓上,该鼓转动提供一个一维的位移,单传感器安装在引导螺杆上,并提供垂直方向上的
    移动,并用一个镜于来控制发射光束到扫描图形上。如图所示:
    在这里插入图片描述

    3.3 带状传感器获取图像

    • 几何形状是带状排列的传感器形成的一个传感器带。

    传感器带在一个方向上提供成像单元,相对于传感器带垂直方向的运动在另一个方向成像。成像传感器带一次给出一幅图像的一行,传感器带的运动完成二维图橡的另一个维度。

    • 以圆环形状安装的传感器用于医学与工程成像,已得到三维物体的横断面(切片)图像。

    原理如下:一个旋转的X射线源提供照射,并且相对于射线源的传感器部分手机通过物体的X射线能量。(显然传感器对X射线敏感);传感器的输出必须由重建算法处理,重建的目的是把感知数据转换成有意义的横截面的图像
    在这里插入图片描述

    3.4 传感器阵列获取图像

    传感器以二位阵列形式进行排列的独特传感器,如CCD阵列照相机。
    如图所示,来自照射源的能量是场景元素的反射(该能量也可以通过场景元素的透射)。
    数字图像获取过程的一个例子:(c)成像系统执行第一个功能是收集入射能量,并将它聚焦到一个图像平面上。如果照射的是光,则成像系统的前端是光学透镜,该透镜把观察到的场景投影到透镜的聚焦平面上,如图(d),与焦平面重合的传感器阵列产生与每个传感器接受到的光的总量成正比的输出。数字或模拟电路扫描这些的输出,并把他转换成模拟信号,然后由成像系统的其他部分数字化,输出是一幅数字图像,如图(e)的图解所示。
    在这里插入图片描述

    3.5 图像成型模型

    我们用f(xy)f(x,y)的二维函数来表示图像。(第一章有讲)
    当一幅图像由物理过程产生时,其亮度值正比于物理源(电磁波)所辐射的能量。因此f(xy)f(x,y)一定是非零有限的,即:

    0<f(xy)<0<f(x,y)<∞

    f(xy)f(x,y)可以由两个分量表征:入射分量i(x,y)i(x,y)和反射分量r(x,y)r(x,y),关系如下:

    f(xy)=i(x,y)r(x,y)f(x,y)=i(x,y)r(x,y)

    其中

    0<i(xy)<0<i(x,y)<∞,0<r(xy)<10<r(x,y)<1

    单色图像在任何坐标处(x0,y0)(x0,y0)的强度(灰度)表示为
    在这里插入图片描述
    其取值范围为
    在这里插入图片描述
    在这里插入图片描述
    区间[Lmin,Lmax][Lmin,Lmax]称为灰度级(强度级)。实际常常令区间为[0,L1][0,L-1],其中l=0l=0为黑,l=L1l=L-1在灰度级中为白色。所有中间值为从黑色到白色之间变化的灰度色调。

    4 图像取样和量化

    获取图像的目标是从感知的数据中产生数字图像,但是传感器的输出是连续的电压波形,因此需要把连续的感知数据转换为数字形式。这一过程由图像的取样与量化来完成。数字化坐标值称为取样;数字化幅度值称为量化。

    4.1 取样

    • 在取样时,若横向的像素数(列数)为M ,纵向的像素数(行数)为N,则图像总像素数为M*N个像素。(M和N必须取正整数)

    • 一般来说,采样间隔越大,所得图像像素数越少,空间分辨率低,质量差,严重时出现马赛克效应;采样间隔越小,所得图像像素数越多,空间分辨率高,图像质量好,但数据量大。
      在这里插入图片描述
      下采样和上采样:

    • 缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的有两个:1、使得图像符合显示区域的大小;2、生成对应图像的缩略图。

    • 放大图像(或称为上采样(upsampling)或图像插值(interpolating))的主要目的是放大原图像,从而可以显示在更高分辨率的显示设备上。对图像的缩放操作并不能带来更多关于该图像的信息, 因此图像的质量将不可避免地受到影响。然而,确实有一些缩放方法能够增加图像的信息,从而使得缩放后的图像质量超过原图质量的。

    下采样原理:对于一幅图像I尺寸为MN,对其进行s倍下采样,即得到(M/s)(N/s)尺寸的得分辨率图像,当然s应该是M和N的公约数才行,如果考虑的是矩阵形式的图像,就是把原始图像s*s窗口内的图像变成一个像素,这个像素点的值就是窗口内所有像素的均值:
    在这里插入图片描述
    上采样原理: 图像放大几乎都是采用内插值方法,即在原有图像像素的基础上在像素点之间采用合适的插值算法插入新的元素。简略的可以将插值算法分为传统插值、 基于边缘的插值和基于区域的插值 3类

    4.2 量化

    灰度级量化的取值是2的整数次幂,区间为[0,L1][0,L-1],即:

    L=2kL=2^k

    高动态范围图像 : 占有灰度级全部有效段的图像。当较多数目的像素具有这样的特性,图像就有较高的对比度。相反,低动态范围图像看起来似乎是冲淡了的灰暗格调。

    量化等级越多,所得图像层次越丰富,灰度分辨率高,图像质量好,但数据量大;量化等级越少,图像层次欠丰富,灰度分辨率低,会出现假轮廓现象,图像质量变差,但数据量小。
    在这里插入图片描述
    很明显,数字图像的质量在很大程度上取决于取样和量化中所用的样本数和灰度级。一般,当限定数字图像的大小时, 为了得到质量较好的图像可采用如下原则:

    • (1) 对缓变的图像, 应该细量化, 粗采样, 以避免假轮廓。
    • (2) 对细节丰富的图像,应细采样,粗量化, 以避免模糊(混叠)。

    4.3 比特数b

    存储数字图像所需要的比特数为b,则

    b=MNkb=M*N*k

    当一幅图像是2k2^k灰度级时,实际上通常称该图像是k比特图像

    4.4 空间和灰度级分辨率

    取样值一幅衣服图像空间分辨率的主要参数。空间分辨率是图像中可分辨的最小细节
    类似的,灰度级分辨率是指在灰度级别中可分辨的最小变化

    如图,在数字图像中各种取样数目的典型效果:
    在这里插入图片描述

    在这里插入图片描述
    N和K两个参数的联系:(书中的实验)
    在这里插入图片描述
    在这里插入图片描述

    • 对于有大量细节的图像,可能只需要较少的灰度级。
    • 当N固定值时,图像的感觉质量与所用的灰度级数是近似独立的。
    • 图像质量保持相同,但灰度级下降了。原因:k的减小倾向于对比度的增加。

    5 像素的一些基本关系

    5.1 相邻像素

    • 位于坐标(x,y)(x,y)处的像素p有4个水平和垂直的相邻像素,这组像素成为p的4邻域,用N4(p){N_4}(p)表示。
      在这里插入图片描述
    • p的4个对角相邻像素ND(p){N_D}(p)表示。
      在这里插入图片描述
    • 它们共同构成了p的8邻域,用N8(p){N_8}(p)表示,即 N4(p)+ND(p)=N8(p){N_4}(p)+{N_D}(p)={N_8}(p)

    5.2 像素的邻接性、连通性

    5.2.1 邻接性

    定义V为邻接性的灰度值集合。在二值图像中,我们把具有1值得像素归诸于邻接像素,即V={1}。看图
    在这里插入图片描述
    4邻接 :如果q在集合N4(p){N_4}(p)中,则具有V中数值的两个像素p和q是4邻接的。
    8邻接 :如果q在集合N8(p){N_8}(p)中,则具有V中数值的两个像素p和q是8邻接的。
    m邻接 :如果q在N4(p){N_4}(p)中,或者在ND(p){N_D}(p)中,而且集合N4(p){N_4}(p)N4(q){N_4}(q)的交集没有V中的像素,此为1,则具有V中数值的两个像素p和q是m邻接的。(此处,可直接将V理解为1,更容易理解)。

    为什么m邻接少一条?
    如果m邻接跟8邻接同样的连接方式看一下,此时是不满足m邻接的定义的。

    从图中可以看出8邻接有多条通路,而m邻接只有一条通路,说明了m邻接的引入是为了消除8邻接的二义性。

    上图8邻接右上点与右下点的通路为8通路,m邻接的通路为m通路。

    5.2.2 连通性

    连通性: 令S为图像中的一个像素子集,S中的全部像素之间存在通路,则可以说两个像素p和q在S中是连通的。对于S中任何像素p,S中连通到该像素的像素集称为S的连通分量。如果S仅有一个连通分量,则集合S称为连通集

    5.3 距离度量D

    对于坐标分别为(x,y),(s,t),(v,w)(x, y), (s, t), (v,w)的像素pqzp,q, z

    p和q的欧几里得距离:

    在这里插入图片描述

    p和q间的距离D4{D_4}

    在这里插入图片描述

    这时候距(x,y)(x, y)的距离D4{D_4}小于等于某个值 rr 的像素形成一个中心在(x,y)(x,y)的菱形。

    eg:距离小于等于2的像素如图
    在这里插入图片描述
    其中D4=1{D_4} = 1的像素就是(x,y)(x, y)4邻域


    p和q间的距离D8{D_8}距离:
    在这里插入图片描述
    此时距(x,y)(x, y)的距离D8{D_8}小于等于某个值 rr 的像素形成一个中心在(x,y)(x,y)的菱形。

    eg:距离小于等于2的像素如图
    在这里插入图片描述

    其中D8=1{D_8} = 1的像素就是(x,y)(x, y)8邻域

    如果选择m邻接,则两点之间的距离用最短通路定义。(数字图像处理第三版 p41)

    5.4 基于像素的图像操作

    像素间的运算,如一个图像除以另一幅图像。意思是在两幅图像相应的像素间执行除法运算。

    5.5 线性和非线性操作

    令H是一种算子,其输入和输出都是图像。如果对于任何两幅图像ffgg及任何两个标量a,ba,b有如下关系:

    H(af+bg)=aH(f)+bH(g)H(af+bg) = aH(f)+bH(g)

    则称H为线性算子

    对两幅图像(用硕士常数相乘)和应用线性算子等同于分别对图像应用该算子,并各自与常数相乘,然后相加结果。

    不能通过上式验证的算子称为非线性算子

    参考文献

    博客1:https://blog.csdn.net/csfreebird/article/details/9949925
    博客2:https://blog.csdn.net/qq_32666555/article/details/79187044
    《数字图像处理》第二章

    展开全文
  • 冈萨雷斯《数字图像处理》 MATLAB版 PDF文档 非常适合图像处理初学者
  • 《数字图像处理》复习提纲

    千次阅读 2019-06-08 12:59:38
    本文在撰写过程中参考了由何东健教授主编、西安电子科技大学出版社出版的《数字图像处理》(第三版),一切著作权归原书作者和出版社所有。特别感谢长安大学软件系老师的认真负责的教导。 第1章 概论 1.1 数字...

    本文在撰写过程中参考了由何东健教授主编、西安电子科技大学出版社出版的《数字图像处理》(第三版),一切著作权归原书作者和出版社所有。特别感谢长安大学软件系老师的认真负责的教导。

    第1章 概论

    1.1 数字图像处理及其特点

    1、数字图像与图像处理
    区分模拟图像与数字图像。
    数字图像处理:利用计算机对图像进行去噪、增强、复原、分割、特征提取、识别等的理论、方法和技术。
    2、数字图像处理的特点:
    处理精度高、易于控制处理效果、处理的多样性、图像数据量大、处理费时、综合性强

    1.2 图像处理的目的及主要内容

    1、数字图像处理的目的
    提高图像的视感质量、特征信息的提取、图像数据变换、编码和压缩
    2、数字图像处理的主要内容
    图像获取、表示和表现,复原,增强,分割,分析,重建、压缩编码

    1.3 数字图像处理的应用(略)

    第2章 数字图像处理基础

    2.1 图像数字化技术

    数字图像处理的先决条件:连续图像离散化。
    图像的数字化包括采样和量化两个过程。
    连续图像数字化的结果是图像矩阵,每一个元素称为像素、像元或图像元素。
    采样方法:正方形采样、三角形采样、正六角形采样
    1、采样
    采样:图像在空间上的离散化,即用采样点的灰度值代替图像。
    采样方法:先垂直采样,在水平采样。对于视频,先对时间采样,再沿垂直方向采样,最后沿水平方向采样。
    一维采样定理:若一维信号的g(t)的最大频率为ω,则采样周期小于等于1/(2ω),则能够根据采样频结果完全恢复图像。
    2、量化
    量化:把采样得到的各像素点的灰度值从模拟量到离散量的转换称为图像灰度的量化,转换前的灰度值称为连续灰度值,转换后的灰度值称为量化灰度值,量化灰度值与连续灰度值的差的绝对值称为量化误差。
    量化方法:等间隔量化(均匀量化、线性量化)、非等间隔量化。
    非等间隔量化是根据图像灰度值分布的概率密度函数,按总量化误差最小的原则来进行量化的。具体做法是“高概率细分,低概率粗分”。
    3、采样与量化参数的选择
    图像存储大小=采样数×量化灰度值位数(bit)
    低采样数导致马赛克,低量化级数导致假轮廓。
    采样原则:
    缓变——细量化、粗采样
    细节丰富——粗量化、细采样
    4、图像数字化设备
    组成:采样孔、图像扫描机构、光传感器、量化器、输出储存装置
    性能指标:像素大小、量化位数(颜色元数)、图像尺寸、线性度、噪声

    2.2 色度学基础与颜色模型

    1、色度学基础
    视杆细胞辨亮度,视锥细胞辨颜色,RGB光的三原色
    颜色属性:色调、饱和度、亮度
    2、颜色模型
    计算颜色模型:RGB、CIE XYZ、Lab
    视觉颜色模型:HSI、HSV、HSL
    工业颜色模型:CMYK、YUV、YCbCr
    (1)RGB模型
    在这里插入图片描述
    (2)CIE XYZ模型
    F=x•X+y•Y+z•Z, x=X/(X+Y+Z), y=Y/(X+Y+Z), z=Z/(X+Y+Z)
    (3)Lab颜色模型
    具有设备无关性,L表示亮度分量,a、b为色度分量,其中a正向绝对值越大表示越红,负向绝对值越大表示越绿;b正向绝对值越大表示越黄,负向绝对值越大表示越蓝。
    (4)HSI颜色模型
    色调H:反应颜色的种类(波长)
    饱和度S:表示颜色的深浅
    强度I:亮度/灰度
    (5)CMY与CMYK颜色模型
    (C,M,Y)=(1,1,1)-(R,G,B)
    在这里插入图片描述
    (6)YUV电视信号彩色坐标系统
    Y表示亮度信号,U、V表示色差
    (7)YCbCr模型
    由亮度Y,色差Cb、Cr组成,但充分考虑RGB分量在视觉感受中的不同重要性。
    3、颜色变换
    颜色变换模型:g(x, y) = T[ f(x, y) ]
    颜色变换关系:si = Ti [r1, r2, r3, … ,rn], i = 1, 2, … , n
    彩色切片:识别目标颜色分离出来

    2.3 数字图像类型

    矢量图:数学公式描绘图像,存储量小,图像清晰度与分辨率无关,缺点是单调且不真实
    位图:像素点阵表示图像,每个像素点具有颜色和位置属性,分为线画稿、灰度图像、索引颜色图像、真彩色图像
    1、位图
    线画稿:二值图像
    灰度图像:介于黑色与白色之间的多级灰度
    索引颜色:选择一些颜色,然后编号,用编号作为颜色的索引
    真彩色图像:RGB颜色
    2、位图有关术语
    像素:显示器显示图像的基本单位
    样点:将原图像网格化,用样点代替网格中所有点
    分辨率:单位长度像素数,按照像素的来源分为图像分辨率屏幕分辨率、打印机分辨率、扫描仪分辨率

    2.4 图像文件格式

    BMP图像文件格式:
    (1)四部分组成:位图文件头、位图信息头、调色板、图像数据
    (2)字节对齐,4byte整数倍
    (3)上下倒置存放
    其他文件格式略

    2.5 OpenCV编程简介

    OpenCV = Open Source Computer Vision Library
    1、OpenCV简介 不考
    2、OpenCV的安装与配置 不考
    3、OpenCV的数据结构 不太可能考
    二维点、三维点、Size_、Rect_、RotatedRect、Matx、Vec、Scalar_、Range、Mat
    4、读入、显示和存储图像

    #include <iostream>
    #include <opencv2/core/core.hpp>
    #include <opencv2/highgui/highgui.hpp>
    using namespace std;
    using namespace cv;
    int main(){
    	Mat image, result;
    	cout << "size: " << image.size().height() << " , " << image.size().width << endl;
    	image = imread("tiger.jpg");
    	if(!image.data){
    		cout << "read image file failed!" << endl;
    	}
    	namedWindow("Original Image");
    	imshow("Original Image", image);
    	flip(image, result,1);
    	namedWindow("Output Image");
    	imshow("Output Image", result);
    	imwrite("output.bmp", result);
    	waitKey(0);
    	return 0
    }
    

    5、操作图像像素
    (1)at方法

    void colorReduce(Mat& inputImage, Mat& outputImage, int div){
    	outputImage = inputImage.clone();
    	int rows = outputImage.rows;
    	int cols = outputImage.cols;
    	for(int i=0;i<rows;i++){
    		for(int j=0;j<cols;j++){
    			outputImage.at<Vec3b>(i,j)[0] = outputImage.at<Vec3b>(i,j)[0]/div*div+div/2;
    			outputImage.at<Vec3b>(i,j)[1] = outputImage.at<Vec3b>(i,j)[1]/div*div+div/2;
    			outputImage.at<Vec3b>(i,j)[2] = outputImage.at<Vec3b>(i,j)[2]/div*div+div/2;
    		}
    	}
    }
    

    (2)使用迭代器

    void colorReduce(Mat& inputImage, Mat& outputImage, int div){
    	outputImage = inputImage.clone();
    	Mat_<Vec3b>::iterator it = inputImage.begin<Vec3b>();
    	Mat_<Vec3b>::iterator it = inputImage.end<Vec3b>();
    	Mat_<Vec3b> cimage = outputImage;
    	Mat_<Vec3b>::iterator itout = cimage.begin();
    	Mat_<Vec3b>::iterator itoutend = cimage.end();
    	for(; it != itend; it++,itout++){
    		(*itout)[0]=(*it)[0]/div*div+div/2;
    		(*itout)[1]=(*it)[1]/div*div+div/2;
    		(*itout)[2]=(*it)[2]/div*div+div/2;
    	}
    }
    

    (3)使用指针

    void colorReduce(Mat& inputImage, Mat& outputImage, int div){
    	outputImage = inputImage.clone();
    	int rows = outputImage.rows;
    	int cols = outputImage.cols;
    	if(outputImage.isContinuous()){
    		cols = cols * rows;
    		rows = 1;
    	}
    	for(int i=0;i<rows;i++){
    		uchar * dataout = outputImage.ptr<uchar>(i);
    		for(int j=0;j<cols;j++){
    			dataout[j] = dataout[j]/div*div+div/2;
    		}
    	}
    }
    

    注意:OpenCV中的彩色图像不是以RGB顺序存放的,而是以BGR顺序存放的。
    4、整行整列像素值的赋值

    img.row(i).setTo(Scalar(255));
    img.col(i).setTo(Scalar(255));
    

    6、图形交互和媒体接口HighGui 不太可能考

    第3章 图像增强

    图像增强的目的:改善图像的视觉效果,或使图像更适合于人或机器的分析处理。减少图像噪声,提高目标与背景的对比度,强调或抑制图像中的某些细节。
    图像增强的方法:空域法、频域法,空域法又可以分为点处理和区处理,频域增强可以分为低通滤波、高通滤波、带通滤波、带阻滤波和同态滤波。

    3.1 灰度变换

    灰度变化模型:g(x, y) = T[ f(x, y) ]
    区处理:灰度变换操作在像素的邻域内进行,区处理一般基于模板卷积实现,因此又称为模板操作或空域滤波。
    常见的灰度变换方法:直接灰度变换法、直方图修正法。直接灰度变换法包括线性、分段线性以及非线性变换;直方图修正法可以分为直方图均衡化和直方图规定化。
    1、灰度线性变换
    在这里插入图片描述
    2、分段线性变换
    在这里插入图片描述
    3、非线性变换
    在这里插入图片描述
    在这里插入图片描述

    3.2 直方图修正

    1、直方图的基本概念
    灰度直方图是图像量化灰度值的频数分布直方图或频率分布直方图。
    2、直方图的性质
    (1)丢失位置信息,保留统计信息
    (2)图像与灰度直方图是一对多的关系
    (3)灰度直方图具有可加性
    3、直方图的计算
    (1)初始化:数组零值初始化
    (2)统计:将量化灰度值映射为数组下标,遍历图像将对应数组元素的值++
    (3)归一化:数组所有元素除以像素总数
    也可以像素值沿水平轴划分为若干子区间称为箱格,从而简化计算。
    4、直方图均衡化
    (1)基本思想:把原始图像的直方图变换为均匀分布的形式,从而增加图像灰度的动态范围,以达到增强图像对比度的效果。经过均衡化处理的图像,其灰度级出现的概率相同,此时图像的熵最大,图像包含的信息量最大。
    (2)推导
    s=T(r)s=T(r)
    s和r分别为灰度变换前后的灰度级,T(r)T(r)单调递增且有界[0,1]
    η=T(ξ)η=T(ξ),则有
    Fη(s)=P(η&lt;s)=P(ξ&lt;r)=rPr(x)dxF_{η}(s) = P(η&lt;s) = P(ξ&lt;r) = \int_{-\infty}^{r}P_{r}(x)dx
    对两边同时求导得
    ps(s)=[pr(r)drds]r=T1(s)p_{s}(s)=[p_{r}(r)•\frac{\mathrm{d} r}{\mathrm{d} s}]_{r=T^{-1}(s)}
    若要使变换后的图像灰度s为均匀分布,即有
    ps(s)=1p_s(s)=1
    代入上式有
    ds=pr(r)dr\mathrm{d} s=p_r(r)\mathrm{d}r
    两边同时积分有
    T(r)=s=0rpr(ω)dωT(r)=s=\int_0^rp_r(ω)\mathrm{d}ω
    其中0rpr(ω)dω\int_0^rp_r(ω)\mathrm{d}ω是r的累计分布函数。
    容易证明,以CDF为灰度变换函数,可得到灰度分布均匀的图像。
    (3)数字图像的直方图均衡化

    k rk nk pr=T(rk) sk=int[(L-1)sk+0.5] s rk->sk ps(sk)
    0 0 790 0.19 0.19 0.19→1 0→1 -
    1 1 1023 0.25 0.44 0.144→3 1→3 0.19
    2 2 850 0.21 0.65 0.65→5 2→5 -
    3 3 656 0.16 0.81 0.81→6 3→6 0.25
    4 4 329 0.08 0.89 0.89→6 4→6 -
    5 5 245 0.06 0.95 0.95→7 5→7 0.21
    6 6 122 0.03 0.98 0.98→7 6→7 0.24
    7 7 81 0.02 1 1→7 7→7 0.11

    简并:频数较低的灰度级被归并为一个新的灰度级上,使得变换过后的灰度级的数量减少了,这种现象称为简并。简并现象增大了灰度级的间隔,增加了图像对比度,可以看清更多的细节。
    理论上,直方图均衡化的结果应该是平坦的,但由于不能将同一灰度级的像素映射到不同的灰度级,因而实际结果只是近似均衡。
    5、直方图规定化
    直方图规定化:实际应用中希望将直方图变换为某个特定的形状,从而有选择地增强某个灰度范围内的对比度,这种方法就称为直方图规定化。
    直方图规定化的步骤:
    第一步,对原始直方图进行均衡化,得到映射关系1;
    第二步,对规定直方图进行均衡化,得到映射关系2;
    第三步,按照单映射规则或组映射规则,根据映射关系1和映射关系2得到最终的映射关系。

    rk,zl pr(rk) pz(zl) sk=T(rk) vl=G(zl) 单映射rk→zl 单映射ps(sk) 组映射rk→zl 组映射ps(sk)
    0 0.19 - 0.19 - r0→r3 0 r0→r3 0
    1 0.25 - 0.44 - r1→r3 0 r1→r5 0
    2 0.21 - 0.65 - r2→r5 0 r2→r5 0
    3 0.16 0.2 0.81 0.2 r3→r5 0.44 r3→r7 0.19
    4 0.08 - 0.89 - r4→r7 0 r4→r7 0
    5 0.06 0.5 0.95 0.7 r5→r7 0.37 r5→r7 0.46
    6 0.03 - 0.98 - r6→r7 0 r6→r7 0
    7 0.02 0.3 1 1 r7→r7 0.19 r7→r7 0.35

    单映射:对于每一个sk找距离它最近的vl
    组映射:对于每一个vl找距离它最近的sk,作为分组依据(分界值归到左侧区间),再进行组映射。

    3.3 图像平滑

    目的:消噪或模糊图像,去除小的细节或弥合目标间的缝隙。
    低频代表信号缓慢变化的部分,高频代表迅速变化的部分;图像边缘、跳跃以及噪声等灰度变化剧烈的部分代表图像的高频分量,灰度变化缓慢的部分代表图像的低频分量。
    1、图像噪声
    (1)噪声分类
    外部噪声和内部噪声
    平稳噪声和非平稳噪声
    高斯噪声和椒盐噪声
    白噪声和粉红噪声(1/f噪声)
    加性噪声和乘性噪声
    (2)特点
    随机性、图像相关性、叠加性
    2、模板卷积
    模板操作的种类:卷积、相关
    功能:图像平滑、锐化、边缘检测
    线性滤波,其输出像素是输入邻域像素的加权核。
    卷积和相关运算的主要区别在于卷积运算需要将模板绕模板中心旋转180°,因其余运算过程一致而统称为模板卷积。模板卷积中的模板称为卷积核,其元素称为卷积系数、模板系数或加权系数,其大小和排列顺序决定了对图像邻域处理的类型。
    模板卷积的运算过程:移动模板、对应相乘再相加、赋值
    3、邻域平均
    Box模板:
    19[111111111] \frac{1}{9}\begin{bmatrix} 1 &amp; 1 &amp; 1 \\ 1 &amp; 1* &amp; 1 \\ 1 &amp; 1 &amp; 1 \end{bmatrix}
    高斯模板:
    116[121242121] \frac{1}{16}\begin{bmatrix} 1 &amp; 2 &amp; 1 \\ 2 &amp; 4* &amp; 2 \\ 1 &amp; 2 &amp; 1 \end{bmatrix}
    领域平均法的主要优点是算法简单,缺点是降噪时会模糊图像,尤其是在边缘和细节处,尺寸越大模糊程度越大。适合处理高斯噪声,不适合处理椒盐噪声。
    4、中值滤波
    非线性滤波,滤除噪声的同时很好地保持图像边缘。
    基本原理:窗口内元素灰度值求中位数并赋给中心元素
    统计排序滤波器:模板内元素排序,选取某个值作为中心元素的值。中值滤波是统计排序滤波器的一种。最值滤波器用于检测亮点或暗点。
    中值滤波的性质:
    (1)不影响阶跃信号、斜坡信号、连续个数少于窗口长度一半的脉冲受到抑制,三角函数顶部变平。
    (2)中值滤波的输出与输入噪声的密度分布有关
    (3)中值滤波频谱特性起伏不大,可以认为中值滤波之后,信号频谱基本不变
    中值滤波窗口形状和尺寸决定了滤波效果,就一般经验而言,对于有缓变的较长轮廓线物体的图像,采用方形或圆形窗口为宜;对于包含有尖顶角物体的图像,用十字形窗口。窗口大小不宜超过图像中最小有效物体的尺寸。如果图像中包含的点、线、尖角较多,则不宜采用中值滤波。
    复合型中值滤波器:中值滤波的线性组合、高阶中值滤波组合、加权中值滤波、迭代中值滤波
    5、图像平均
    基本原理:同一景物的多幅图像取平均值来消噪。
    缺点:难以操作

    3.4 图像锐化

    目的:使模糊的图像变清晰,增强图像的边缘等细节,但同时也会增强噪声,一般先做消噪处理。
    图像锐化的方法:空域法、频域法
    1、微分法
    微分运算通常通过一阶向前差分运算或二阶中心差分来实现。
    (1)梯度算子
    梯度算子的定义
    f(x,y)=[fxfy]T \mathrm{▽}\mathbf{f}(x,y)=\begin{bmatrix}\frac{\partial f}{\partial x} &amp; \frac{\partial f}{\partial y}\end{bmatrix}^T
    梯度幅度
    f(x,y)=f(x,y)=(Gx2+Gy2)12 \mathrm{▽} f(x,y)=|\mathrm{▽}\mathbf{f}(x,y)|=(G_x^2+G_y^2)^{\frac 1 2}
    梯度方向角
    φ(x,y)=arctan(GyGx) φ(x,y)=arctan(\frac {G_y} {G_x})
    水平梯度差分法
    f(x,y)f(x+1,y)f(x,y)+f(x,y+1)f(x,y) \mathrm{▽} f(x,y) \approx |f(x+1,y)-f(x,y)|+|f(x,y+1)-f(x,y)|
    Robert交叉算子
    f(x,y)f(x+1,y+1)f(x,y)+f(x,y+1)f(x+1,y) \mathrm{▽} f(x,y) \approx |f(x+1,y+1)-f(x,y)|+|f(x,y+1)-f(x+1,y)|
    中心差分算子
    {Gx=f(x+1,y)f(x1,y)2Gy=f(x,y+1)f(x,y1)2 \left \{\begin{matrix} G_x=\frac{f(x+1,y)-f(x-1,y)}{2} \\ \\ G_y=\frac{f(x,y+1)-f(x,y-1)}{2} \end{matrix}\right.
    常见的梯度算子:

    算子名称 模板H1 模板H2 特点
    Roberts [0110]\begin{bmatrix}0* &amp; -1 \\ 1 &amp; 0\end{bmatrix} [1001]\begin{bmatrix}-1* &amp; 0 \\ 0 &amp; 1\end{bmatrix} 各向同性;对噪声敏感;模板尺寸为偶数,中心位置不明显
    Prewitt [101101101]\begin{bmatrix}-1 &amp; 0 &amp; 1 \\ -1 &amp; 0* &amp; 1 \\ -1 &amp; 0 &amp; 1 \end{bmatrix} [111000111]\begin{bmatrix}-1 &amp; -1 &amp; -1 \\ 0 &amp; 0* &amp; 0 \\ 1 &amp; 1 &amp; 1\end{bmatrix} 引入了平均因素,对噪声有抑制作用;操作简便
    Sobel [101202101]\begin{bmatrix}-1 &amp; 0 &amp; 1 \\ -2 &amp; 0* &amp; 2 \\ -1 &amp; 0 &amp; 1 \end{bmatrix} [121000121]\begin{bmatrix}-1 &amp; -2 &amp; -1 \\ 0 &amp; 0* &amp; 0 \\ 1 &amp; 2 &amp; 1\end{bmatrix} 引入了平均因素,增强了最近像素的影响,噪声抑制效果比Prewitt要好
    Krisch [335305335]\begin{bmatrix}-3 &amp; -3 &amp; 5 \\ -3 &amp; 0* &amp; 5 \\ -3 &amp; -3 &amp; 5 \end{bmatrix} [333303555]\begin{bmatrix}-3 &amp; -3 &amp; -3 \\ -3 &amp; 0* &amp; -3 \\ 5 &amp; 5 &amp; 5\end{bmatrix} 噪声抑制效果要好;需求出8个方向的响应(这里只给出两个方向的模板)
    Isotropic Sobel [101202101]\begin{bmatrix}-1 &amp; 0 &amp; 1 \\ -\sqrt 2 &amp; 0* &amp; \sqrt 2 \\ -1 &amp; 0 &amp; 1 \end{bmatrix} [121000121]\begin{bmatrix}-1 &amp; -\sqrt 2 &amp; -1 \\ 0 &amp; 0* &amp; 0 \\ 1 &amp; \sqrt 2 &amp; 1\end{bmatrix} 权值反比于邻点与中心点的距离,检沿不同方向边缘时梯度幅度一致,即具有各向同性

    (2)拉普拉斯算子
    拉普拉斯算子:
    Δf=2f=2f2x+2f2y \Delta f=\nabla ^2f=\frac{\partial ^2f}{\partial ^2x}+\frac{\partial ^2f}{\partial ^2y}
    差分表示:
    2ff(x+1,y)+f(x1,y)+f(x,y+1)+f(x,y1)4f(x,y) \nabla ^2f \approx f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)-4f(x,y)
    常用拉普拉斯模板:
    [010141010][111181111][121242121] \begin{bmatrix} 0 &amp; -1 &amp; 0 \\ -1 &amp; 4* &amp; -1 \\ 0 &amp; -1 &amp; 0 \end{bmatrix} \begin{bmatrix} -1 &amp; -1 &amp; -1 \\ -1 &amp; 8* &amp; -1 \\ -1 &amp; -1 &amp; -1 \end{bmatrix} \begin{bmatrix} 1 &amp; -2 &amp; 1 \\ -2 &amp; 4* &amp; -2 \\ 1 &amp; -2 &amp; 1 \end{bmatrix}
    平滑模板和微分模板的对比:
    (1)微分模板的权系数之和为0,使得灰度平坦区的响应为0。平滑模板的权系数都为正,和为1,这使得灰度平坦区的输出与输入相同。
    (2)一阶微分模板在对比度较大的点产生较高的响应,二阶微分模板在对比度大的点产生零交叉。一阶微分一般产生更粗的边缘,二阶微分则产生更细的边缘。相对一阶微分而言,二阶微分对细线、孤立的点等小细节有更强的响应。
    (3)平滑模板的平滑或去噪程度与模板的大小成正比,跳变边缘的模糊程度与模板的大小成正比。
    2、非锐化滤波
    非锐化滤波:从原始图像中减去原始图像的一个非锐化的或者说是平滑的图像,从而达到增强边缘等细节的目的,用公式表示为:
    g(x,y)=f(x,y)fs(x,y) g(x,y)=f(x,y)-f_s(x,y)
    式中f表示输入图像,fs表示由输入图像得到的平滑图像,g为输出图像。
    图像平滑的实质是一种低通滤波,从原始图像中减去平滑图像就相当于除去低频成分保留了高频成分。
    3、高频增强滤波
    高频增强滤波:如果原始图像与高通图像相加,则可以在保持原始图像概貌的同时突出边缘等细节。将原始图像乘以一个比例系数A,高通图像也乘以一个比例系数K,两者相加得到一个增强图像,称该过程为高频增强滤波。
    fhb(x,y)=Af(x,y)+Kg(x,y) f_{hb}(x,y)=Af(x,y)+Kg(x,y)
    fhb(x,y)f_{hb}(x,y)表示输出图像,g(x,y)g(x,y)f(x,y)f(x,y)的一个高通图像,A>=0,0<=K<=1。K在0.2~0.7之间取值时,高频增强滤波的效果最好;A足够大时,图像锐化作用削弱,输出图像接近原始图像整数倍;特别地,当A=1,K=1时为常用的拉普拉斯高频增强模板。
    常见的拉普拉斯高频增强模板:
    [010151010][111191111][121252121] \begin{bmatrix} 0 &amp; -1 &amp; 0 \\ -1 &amp; 5* &amp; -1 \\ 0 &amp; -1 &amp; 0 \end{bmatrix} \begin{bmatrix} -1 &amp; -1 &amp; -1 \\ -1 &amp; 9* &amp; -1 \\ -1 &amp; -1 &amp; -1 \end{bmatrix} \begin{bmatrix} 1 &amp; -2 &amp; 1 \\ -2 &amp; 5* &amp; -2 \\ 1 &amp; -2 &amp; 1 \end{bmatrix}

    3.5 伪彩色处理

    原理:不同灰度级赋予不同彩色。
    1、灰度分层法:类似于等高线、卫星云图、天气预报图等
    2、灰度变换法:红外热成像仪等
    3、频域滤波法:在频率域进行伪彩色处理

    3.6 同态滤波

    同态滤波:在压缩动态范围的同时增强图像对比度,既增强暗区的图像细节又不损失亮区的图像细节。同态滤波用于消除图像中的非均匀光照,对乘性噪声的滤波效果也比较好。
    通常认为,像素的灰度值为光照的入射分量与物体的反射分量的乘积决定。
    f(x,y)=i(x,y)r(x,y) f(x,y)=i(x,y)r(x,y)
    入射分量描述景物的照明,与景物无关,在空间均匀或缓慢变化,频谱特性集中在低频部分。由于景物具有较多细节内容,因而反射分量随空间变化较大,其频谱特性主要集中在高频部分。通过消除场景关照的不均匀性可以增强图像细节。
    对上式两边取对数
    lnf(x,y)=lni(x,y)+lnr(x,y) \mathrm{ln}f(x,y)=\mathrm{ln}i(x,y)+\mathrm{ln}r(x,y)
    两边做傅里叶变换,得
    Ff(u,v)=Fi(u,v)+Fr(u,v) F_f(u,v)=F_i(u,v)+F_r(u,v)
    高斯高通同态滤波器:
    H(u,v)=(γHγL)[1ecD2(u,v)D02]+γL H(u,v)=(\gamma _H-\gamma _L)[1- e^{-c\frac{D^2(u,v)}{D_0^2}}]+\gamma _L
    γH\gamma _HγL\gamma _L用于控制滤波强度,c用于控制滤波器斜面的锐化程度,D2(u,v)D^2(u,v)为频谱上点(u,v)到频谱中心的距离,D02D_0^2为截止半径。
    同态滤波结果:
    g(x,y)=exp{F1[Ff(u,v)H(u,v)]} g(x,y)=exp\{F^{-1}[F_f(u,v)H(u,v)]\}

    第4章 图像的几何变换

    4.1 几何变换基础

    1、概述
    2、齐次坐标
    标准化齐次坐标是几何变换的基础。
    3、二维图像几何变换矩阵
    P=TP0P0=[x1x2...xny1y2...yn11...1]P=[Hx1Hx2...HxnHy1Hy2...HynHH...H]T=[abpcdq001] P=TP_0 \\ P_0=\begin{bmatrix}x_1 &amp; x_2 &amp; ... &amp; x_n \\ y_1 &amp; y_2 &amp; ... &amp; y_n \\ 1 &amp; 1 &amp; ... &amp; 1\end{bmatrix} \\ \\ P_=\begin{bmatrix}Hx_1&#x27; &amp; Hx_2&#x27; &amp; ... &amp; Hx_n&#x27; \\ Hy_1&#x27; &amp; Hy_2&#x27; &amp; ... &amp; Hy_n&#x27; \\ H &amp; H &amp; ... &amp; H\end{bmatrix} \\ T=\begin{bmatrix}a &amp; b &amp; p \\ c &amp; d &amp; q \\ 0 &amp; 0 &amp; 1\end{bmatrix}

    4.2 图像比例缩放

    1、图像比例放缩变换
    全比例放缩:x轴方向和y轴方向缩放比例相同
    几何畸变:x轴方向和y轴方向缩放比例不相同,会改变像素间的相对位置,产生几何畸变
    插值处理:比例缩放可能导致出现空穴,必须进行插值。插值方法有最邻近插值法和插值算法(如双线性内插值法)
    (1)图像的比例缩小
    I(x,y)=F(int(cx),int(cy)),c=1k I(x,y)=F(int(cx),int(cy)), c=\frac 1 k
    (2)图像的非比例缩小
    I(x,y)=F(int(c1x),int(c2y)),c1=1k1,c2=1k2 I(x,y)=F(int(c_1x),int(c_2y)), c_1=\frac 1 {k_1}, c_2=\frac 1 {k_2}
    (3)图像的比例放大
    最邻近插值法:原图像对应元素如果不存在就取邻近的元素。
    线性插值法:
    g(x,y)=(1q)[(1p)f([x],[y]+1)+pf([x]+1,[y])]+q[(1p)f([x],[y]+1)+pf([x]+1,[y]+1)] g(x,y)=(1-q)[(1-p)f([x],[y]+1)+pf([x]+1,[y])]+q[(1-p)f([x],[y]+1)+pf([x]+1,[y]+1)]
    在这里插入图片描述
    2、比例缩放的实现 (略)

    4.3 图像平移

    没啥说的

    4.4 图像镜像

    没啥说的

    4.5 图像旋转

    1、图像的旋转变换
    变换矩阵没啥说的
    插值方法:行插值、列插值、双线性插值
    2、图像旋转的实现(略)

    4.6 图像复合变换

    复合平移、复合比例、复合旋转、图像转置、任意点比例缩放、任意点旋转
    插值方法:
    在这里插入图片描述
    插值算法:双线性插值、最邻近插值

    4.7 透视变换

    1、透视变换
    投影变换:把空间坐标系中的三维物体或对象转变为二维图像表示的过程称为投影变换。根据视点和投影平面之间的距离的不同,投影可分为平行投影(距离∞)和透视投影(有限距离)。
    平行投影:投影线互相平行的投影称为平行投影,分为正投影和斜投影。正投影要求投影线垂直于投影面,分为正交投影和正轴测投影,正交投影要求坐标轴必须正交,正轴测投影要求坐标轴夹角都相等即为120°,根据坐标轴单位长度是否都相等分为正等轴测图、正二轴测图、正三轴测图。斜投影不要求投影线与投影面垂直,根据坐标轴单位长度是否相等分为斜等测投影和斜二测投影。
    透视投影:投影线不相互平行的投影,根据灭点的数量分为一点透视、两点透视和三点透视。
    2、其他变换
    几何畸变:成像与目标之间不相似的情况称为几何畸变。
    (1)非矩形像素坐标的转换
    极坐标、柱坐标、球坐标→笛卡尔坐标系
    (2)图像错切
    平面景物在投影平面上的非垂直投影。
    水平错切、垂直错切
    (3)图像卷绕
    通过指定一系列控制点的位移来定义空间变换的图像变形的处理技术,非控制点的位移则通过控制点进行插值。

    4.8 几何畸变的矫正

    在这里插入图片描述
    几何畸变两个关键步骤:图像空间像素坐标的几何变换——空间变换;变换后的标准图像空间的各像素灰度值的计算——灰度值计算。
    校正函数的建立步骤:
    (1)利用控制点对图像数据建立一个模拟几何畸变的数学模型,以建立畸变图像空间与标准空间的对应关系
    (2)用这种对应关系把畸变空间中的全部元素变换到标准空间中去。
    重采样的方法:
    (1)直接成图法
    畸变图像元素→标准图像空间正确的位置
    (x,y)=f(u,v)(x,y)=\boldsymbol f(u,v)
    (2)间接成图法(重采样成图法)
    标准图像空间某个位置→对应畸变图像位置
    (u,v)=f1(x,y)(u,v)=\boldsymbol f^{-1}(x,y)
    两种方法的区别:校正函数不同,直接成图法通过亮度重配置获得亮度值,间接成图法通过亮度重采样获得亮度值。
    多项式校正法:将几何畸变看成各种类型仿射变换复合作用的结果。
    {u=gu(x,y)=i=0nj=0niaijxiyjv=gv(x,y)=i=0nj=0nibijxiyj \left \{ \begin{matrix} u=g_u(x,y)=\sum_{i=0}^{n}\sum_{j=0}^{n-i}a_{ij}x^iy^j \\ \\ v=g_v(x,y)=\sum_{i=0}^{n}\sum_{j=0}^{n-i}b_{ij}x^iy^j \end{matrix} \right.
    拟合误差平方和:
    {εu=k=1K(uki=0nj=0niaijxkiykj)2εv=k=1K(vki=0nj=0nibijxkiykj)2 \left \{ \begin{matrix} \varepsilon_u=\sum_{k=1}^K(u_k-\sum_{i=0}^{n}\sum_{j=0}^{n-i}a_{ij}x_k^iy_k^j)^2 \\ \\ \varepsilon_v=\sum_{k=1}^K(v_k-\sum_{i=0}^{n}\sum_{j=0}^{n-i}b_{ij}x_k^iy_k^j)^2 \end{matrix} \right.
    使用最小二乘法计算系数时,控制点的数目不能小于n。

    第5章 频域处理

    数字图像处理的两类方法:空域法、频域法
    频域法:把图像信号从空域转换为频域进行图像分析
    频域处理的应用:图像特征的提取、图像压缩编码、减小计算维数

    5.1 频域与频域变换

    频域变换的理论基础:任意波形都可以表示为一系列正弦波的加和
    幅频特性——振幅与频率之间的关系
    相频特性——初相与频率之间的关系
    时域和频域的变换:
    f(x)A(ω),Φ(ω)F(ω)f(x)\begin{matrix}正变换 \\ \Leftrightarrow \\ 逆变换\end{matrix}A(\omega),\Phi(\omega) \rightarrow F(\omega)
    5.2 傅里叶变换
    1、连续函数的傅里叶变换
    关键词:狄利克雷条件、二维傅里叶变换
    2、离散傅里叶变换
    定义:
    F[f(x)]=F(u)=x=0N1f(x)ej2πuxNF1[F(u)]=f(x)=1Nu=0N1F(u)ej2πuxNF[f(x)]=F(u)=x=0N1f(x)[cos(2πNux)jsin(2πNux)]F1[F(u)]=f(x)=1Nu=0N1F(u)[cos(2πNux)+jsin(2πNux)] \mathscr{F}[f(x)]=F(u)=\sum_{x=0}^{N-1}f(x)e^{-j\frac {2\pi ux}{N}} \\ \mathscr{F}^{-1}[F(u)]=f(x)=\frac 1 N \sum_{u=0}^{N-1}F(u)e^{j\frac {2\pi ux}{N}} \\ \mathscr{F}[f(x)]=F(u)=\sum_{x=0}^{N-1}f(x)[cos(\frac {2\pi} Nux)-j\cdot sin(\frac {2\pi} Nux)] \\ \mathscr{F}^{-1}[F(u)]=f(x)=\frac 1 N \sum_{u=0}^{N-1}F(u)[cos(\frac {2\pi} Nux)+j\cdot sin(\frac {2\pi} Nux)] \\
    离散傅里叶变换的结果仍然是一个离散的序列,对每一个u对应的傅里叶变换结是所有输入序列f(x)的加权和,u决定了每个傅里叶变换结果的频率
    如果F(u)可以表示为F(u)=R(u)+jI(u)F(u)=R(u)+jI(u),且R(u)和I(u)是实函数,则称F(u)=R2(u)+I2(u)|F(u)|=\sqrt {R^2(u)+I^2(u)}为f(x)的频谱,φ(u)=arctan(I(u)R(u))\varphi(u)=arctan(\frac {I(u)}{R(u)})为f(x)的相位谱。频谱的平方称为能量谱。
    二维离散傅里叶变换:
    F[f(x,y)]=F(u,v)=x=0M1y=0N1f(x,y)ej2π(uxM+vyN)F1[f(x,y)]=F(u,v)=1MNu=0M1v=0N1F(u,v)ej2π(uxM+vyN) \mathscr{F}[f(x,y)]=F(u,v)=\sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x,y)e^{-j2\pi (\frac {ux} M+\frac {vy} N)} \\ \mathscr{F}^{-1}[f(x,y)]=F(u,v)=\frac 1 {MN}\sum_{u=0}^{M-1}\sum_{v=0}^{N-1}F(u,v)e^{j2\pi (\frac {ux} M+\frac {vy} N)}
    3、离散傅里叶变换的性质
    在这里插入图片描述
    在这里插入图片描述
    4、离散傅里叶变换的openCV 不考

    5.3 频域变换的一般表达式

    1、可分离变换
    二维傅里叶变换通用表达式:
    F(u,v)=x=0M1y=0N1f(x,y)g(x,y,u,v)f(x,y)=u=0M1v=0N1F(u,v)h(x,y,u,v) F(u,v)=\sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x,y)\cdot g(x,y,u,v) \\ f(x,y)=\sum_{u=0}^{M-1}\sum_{v=0}^{N-1}F(u,v)\cdot h(x,y,u,v)
    其中g和h分别被称为正向变换核与负向变换核。
    可分离的:
    如果
    g(x,y,u,v)=g1(x,u)g2(y,v)h(x,y,u,v)=h1(x,u)h2(y,v) g(x,y,u,v)=g_1(x,u)\cdot g_2(y,v) \\ h(x,y,u,v)=h_1(x,u)\cdot h_2(y,v)
    则称正反变换核是可分离的。进一步地,如果g1和g2,h1和h2在函数形式上一致,则称该变换核是对称的。
    2、图像变换的矩阵表示
    F=PfQf=P1FQ1P(u,x)=g1(x,u)=ej2πuxMQ(y,v)=g2(y,v)=ej2πvyN \boldsymbol {F=PfQ} \\ \boldsymbol {f=P^{-1}FQ^{-1}} \\ P(u,x)=g_1(x,u)=e^{-j\frac {2\pi ux} M} \\ Q(y,v)=g_2(y,v)=e^{-j\frac {2\pi vy} N}

    5.4 离散余弦变换(DCT)

    1、一维离散余弦变换
    DCT变换核定义:
    g(x,u)=C(u)2Ncos(2x+1)uπ2NC(u)={12,u=01,else \begin{matrix} g(x,u)=C(u)\sqrt {\frac 2 N cos \frac {(2x+1)u\pi} {2N}} \\ \\ C(u)=\left \{ \begin{matrix} \frac 1 {\sqrt 2}, u=0 \\ \\ 1,else\end{matrix}\right. \end{matrix}
    一维DCT定义:
    F(u)=x=0N1f(x)g(x,u)F=Gf(G(u,x)=g(x,u) F(u)=\sum_{x=0}^{N-1}f(x)g(x,u) \\ \boldsymbol {F=Gf}(矩阵形式,G(u,x)=g(x,u))
    在这里插入图片描述
    DCT逆变换IDCT:
    h(x,u)=g(x,u)=C(u)2Ncos(2x+1)uπ2Nf(x)=u=0N1F(u)h(x,u) h(x,u)=g(x,u)=C(u)\sqrt {\frac 2 N cos \frac {(2x+1)u\pi} {2N}} \\ f(x)=\sum_{u=0}^{N-1}F(u)h(x,u)
    2、二维离散余弦变换
    2D-DCT:
    g1(x,u)=2MC(u)cos(2x+1)uπ2Mg2(y,v)=2NC(v)cos(2x+1)vπ2Ng(x,y,u,v)=g1(x,u)g2(y,v)F(u,v)=x=0M1y=0N1f(x,y)g(x,y,u,v) g_1(x,u)= \sqrt {\frac 2 M} C(u) cos \frac {(2x+1)u\pi} {2M} \\ g_2(y,v)= \sqrt {\frac 2 N} C(v) cos \frac {(2x+1)v\pi} {2N} \\ g(x,y,u,v)=g_1(x,u)g_2(y,v) \\ F(u,v)=\sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x,y)g(x,y,u,v)
    2D-IDCT:
    h1(x,u)=g1(x,u)h2(y,v)=g2(y,v)h(x,y,u,v)=h1(x,u)h2(y,v)f(x,y)u=0M1v=0N1F(u,v)h(x,y,u,v) h_1(x,u)=g_1(x,u) \\ h_2(y,v)=g_2(y,v) \\ h(x,y,u,v)=h_1(x,u)\cdot h_2(y,v) \\ f(x,y)\sum_{u=0}^{M-1}\sum_{v=0}^{N-1}F(u,v)h(x,y,u,v)

    5.5 频域中图像处理的实现

    1、理解数字图像的频谱图
    数字图像平移后的频谱中,图像的能量将集中到频谱中心(低频成分),细节信息分散在图像频谱的边缘。频谱中的低频成分代表了图像的概貌,高频成分代表了图像中的细节。
    2、频域图像处理步骤
    在这里插入图片描述
    3、频域滤波
    低通滤波器、高通滤波器、带通滤波器、带阻滤波器
    高通巴特沃斯滤波器:H(u,v)=11+[D0D(u,v)]2nH(u,v)=\frac 1 {1+[\frac {D_0} {D(u,v)}]^{2n}}
    低通巴特沃斯滤波器:H(u,v)=11+[D(u,v)D0]2nH(u,v)=\frac 1 {1+[\frac {D(u,v)} {D_0}]^{2n}}

    5.6 小波变换简介(暂略)

    第6章 数学形态学处理

    数学形态学四种基本运算:腐蚀、膨胀、开运算、闭运算

    6.1 引言

    1、数学形态学
    数学形态学的基本思想:用具有一定形态的结构元素去量度和提取图像中的对应形状,已以达到图像分析和识别的目的。
    2、基本符号和术语
    元素和集合、交并补差、平移反射、目标图像与结构元素
    击中与击不中:交集为空击不中,交集不为空击中

    6.2 二值形态学

    1、腐蚀
    XS={xXS+xX}X\ominus S=\{x\in X |S+x\subseteq X\}
    理解:把结构体元素放在目标图像中移动,则结构体元素的原点的集合构成腐蚀的结果。
    2、膨胀
    XS={X+ssS}={S+xxX}={x(Sv+x)X}X\oplus S=\bigcup\{X+s|s\in S\}=\bigcup\{S+x|x\in X\}=\{x|(S^v+x) \cap X\neq \varnothing\}
    理解:第二种定义比较好理解,即吧结构体元素原点放在目标图像中移动,所有结构体元素的并。
    运算律:
    X(YZ)=(XY)(XZ)X(YZ)=(XY)(XZ)(XY)Z(XZ)(YZ)(XY)Z=(XZ)(YZ)(XY)Z=(XZ)(YZ)(XY)Z(XZ)(YZ) X\ominus(Y\cap Z)=(X\ominus Y)\cap(X\ominus Z) \\ X\oplus(Y\cap Z)=(X\oplus Y)\cap(X\oplus Z) \\ (X\cap Y)\ominus Z\supset(X\ominus Z)\cap (Y\ominus Z) \\ (X\cap Y)\oplus Z=(X\oplus Z)\cap (Y\oplus Z) \\ (X\cup Y)\ominus Z=(X\ominus Z)\cup (Y\ominus Z) \\ (X\cup Y)\oplus Z\subseteq(X\oplus Z)\cup (Y\oplus Z)
    3、开闭运算
    开运算:XS=(XS)SX○S=(X\ominus S)\oplus S
    闭运算:XS=(XS)SX\cdot S=(X\oplus S)\ominus S
    开闭运算的代数性质:
    (1)对偶性:(XCS)C=XS;(XCS)=XS(X^C○S)^C=X\cdot S; (X^C\cdot S)=X○S
    (2)扩展性:XSXXSX○S\subseteq X \subseteq X\cdot S
    开运算恒使图像缩小,闭运算恒使图像扩展。
    (3)单调性:XYXSYS,XSYSX\subseteq Y \Rightarrow X\cdot S\subseteq Y\cdot S, X○ S\subseteq Y○ S
    YZZY=ZXYXZY\subseteq Z\wedge Z\cdot Y=Z \Rightarrow X\cdot Y\subseteq X \cdot Z
    (4)平移不变性:(X+h)S=(XS)+h(X+h)\cdot S=(X\cdot S)+h
    (X+h)S=(XS)+h(X+h)○ S=(X○ S)+h
    X(S+h)=XSX\cdot (S+h)=X\cdot S
    X(S+h)=XSX○ (S+h)=X○ S
    (5)等幂性:(XS)S=XS,(XS)S=XS(X\cdot S)\cdot S = X\cdot S,(X○ S)○ S = X○ S
    (6)开闭运算与集合的关系:
    (i=0nXi)Si=0n(XiS)(\bigcup_{i=0}^{n}X_i)○S\supseteq \bigcup_{i=0}^{n}(X_i○S)
    (i=0nXi)Si=0n(XiS)(\bigcap_{i=0}^{n}X_i)○S\subseteq \bigcap_{i=0}^{n}(X_i○S)
    (i=0nXi)Si=0n(XiS)(\bigcup_{i=0}^{n}X_i)\cdot S\supseteq \bigcup_{i=0}^{n}(X_i\cdot S)
    (i=0nXi)Si=0n(XiS)(\bigcap_{i=0}^{n}X_i)\cdot S\subseteq \bigcap_{i=0}^{n}(X_i\cdot S)
    4、击中击不中变换
    XS={xS1+xXS2+xXC}=(XS1)(XCS2)X\odot S=\{x|S_1+x\subseteq X \wedge S_2+x\subseteq X^C\}=(X\ominus S_1)\cap(X^C\ominus S_2)

    6.3 灰值形态学

    1、灰值腐蚀
    (fb)(s,t)=min{f(s+x,t+y)b(x,y)s+x,t+yDfx,yDb}(f\ominus b)(s,t)=min\{f(s+x,t+y)-b(x,y)|s+x,t+y\in D_f \wedge x,y \in D_b\}
    腐蚀的计算是在由结构元素确定的领域中选取fbf\ominus b的最小值,所以灰值图像的腐蚀操作会有两类效果:如果结构体元素的值都为正,则输出图像会比原图像暗;如果输入图像中亮细节的尺寸比结构元素小,则其影响会被减弱。
    2、灰值膨胀
    (fb)(s,t)=max{f(sx,ty)+b(x,y)sx,tyDfx,yDb}(f\oplus b)(s,t)=max\{f(s-x,t-y)+b(x,y)|s-x,t-y\in D_f \wedge x,y \in D_b\}
    膨胀的计算是在由结构元素确定的领域中选取fbf\oplus b的最大值,所以对灰值图像的膨胀有两类效果:如果结构体元素的值都为正,则输出图像会比原图像亮;如果输入图像中暗细节的灰度值及形状相对于结构体元素的大小,则其被消减或消除。
    膨胀或腐蚀满足以下对偶关系:
    (fb)C=fCbV(f\oplus b)^C=f^C \ominus b^V
    (fb)C=fCbV(f\ominus b)^C=f^C \oplus b^V
    3、灰值开闭运算
    定义与二值形态学定义类似,亦满足类似的对偶关系。
    灰值开运算削平山峰。灰值闭运算填平深谷。
    实际中常用开运算操作消除与结构元素相比尺寸较小的亮细节,而保持整体灰度值和大的亮区域;实际应用中常使用闭运算操作消除与结构元素相比尺寸较小的暗细节,而保持图像整体灰值和大的暗区域。

    6.4 形态学的应用

    灰值形态学的主要算法有:灰值形态学梯度、形态学平滑、纹理分割、顶帽变换等
    二值形态学的主要算法有:二值形态学滤波、骨架抽取等
    1、形态学滤波
    将开运算与闭运算相结合可以构成形态学噪声滤除器,开运算滤除黑色背景上的白色噪声,闭运算滤除白色前景中的黑色噪声。
    2、骨架提取
    骨架定义方法:火种法、最大圆盘法
    (1)基于腐蚀和开运算的细化
    定义骨架子集Sk(X)S_k(X)为图像X内所有最大圆盘kB(至少与两条边相切的内切圆)的圆心x构成的集合。从骨架的定义可知,骨架是所有骨架子集的并,即
    Sk(X)={Sk(X)k=0,1,...,n} S_k(X)=\bigcup\{S_k(X)|k=0,1,...,n\}
    可以证明骨架子集可以表示为:
    Sk(X)=(XkB)[(XkB)B]XkB=(X(k1)B)B S_k(X)=(X\ominus kB)-[(X\ominus kB)○ B] \\ 递推公式:X\ominus kB=(X\ominus (k-1)B)\ominus B
    所以:
    S(X)={(XkB)[(XkB)B]k=0,1,2,...,n} S(X)=\bigcup\{(X\ominus kB)-[(X\ominus kB)○B]|k=0,1,2,...,n\}
    停止迭代的时机:XkBX\ominus kB\varnothing
    (2)快速形态学细化算法

    在这里插入图片描述
    (1)(2)(4)(6)都不能删除,(2)(4)可以删除
    可以删除的情况:内部点不可删除、孤立点不可删除、直线端点不可删除、去掉后连通分量不增加。

    第7章 图像分割

    图像分割就是把图象分成一系列有意义的、各具特征的目标或区域的技术和过程。这里的特征包括图像的统计特征和视觉特征。统计特征包括图像的直方图、矩和频谱等,图像的视觉特征主要包括区域的亮度、纹理或轮廓等。
    图像分割一般基于像素灰度值的两个性质:不连续性和相似性。区域之间的边界往往具有有灰度不连续性,而区域内部一般具有灰度相似性。
    图像分割算法一般分为两类:利用灰度不连续性——基于边界的分割;利用灰度相似性——基于区域的分割
    常用算法:阈值分割、区域生长、区域分裂与合并、边缘检测与边界连接、区域标记与轮廓跟踪、分水岭分割、Mean Shift和Graph Cuts算法

    7.1 阈值分割

    1、概述
    基本假设:目标与背景相邻像素间灰度值高度相关;目标与边界两侧像素灰度值差别很大;目标与背景的灰度分布都是单峰的。
    阈值分割过程:阶跃函数
    阈值分割的关键——阈值的确定:
    (1)种类:全局阈值、局部阈值、动态阈值(自适应阈值)
    (2)阈值分割的要素:T=T[x,y,f(x,y),p(x,y)]T=T[x,y,f(x,y),p(x,y)], f(x,y)表示灰度值,p(x,y)表示某种局部性质。
    2、全局阈值
    适用条件:“双峰”性质
    确定全局阈值的方法:
    (1)极小点阈值法:取直方图谷底位置作为阈值
    (2)迭代阈值法:初始阈值T1T_1→像素划分为G1G_1G2G_2→计算平均灰度μ1\mu_1μ2\mu_2→计算新的阈值T2=μ1+μ22T_2=\frac {\mu_1+\mu_2} 2→迭代→终止条件T2T1&lt;T0|T_2-T_1| &lt;T_0
    (3)最优阈值法:选择一个阈值使得总的分类误差概率降到最低。
    p(z)p(z)为灰度概率密度函数,p1(z)p_1(z)p2(z)p_2(z)分别为背景和目标灰度条件概率密度函数,P1P_1P2P_2为背景和目标像素出现的概率,那么由全概率公式得:
    p(z)=P1p1(z)+P2p2(z) p(z)=P_1p_1(z)+P_2p_2(z)
    把目标像素错分为背景像素的误差条件概率为:
    E1(T)=Tp1(z)dz E_1(T)=\int_{-\infty}^Tp_1(z)\mathrm{d}z
    把背景像素错分为背景像素的误差条件概率为:
    E2(T)=T+p2(z)dz E_2(T)=\int_T^{+\infty}p_2(z)\mathrm{d}z
    由全概率公式得总误差概率为:
    E(T)=P2E1(T)+P1E2(T) E(T)=P_2E_1(T)+P_1E_2(T)
    一般认为目标与背景的灰度服从高斯分布,利用概率论与数理统计中最大似然估计方法可以得到最优解
    T=μ1+μ22+σ2μ1μ2ln(P2P1) T=\frac {\mu_1+\mu_2} 2+\frac {\sigma^2} {\mu_1-\mu_2}ln(\frac{P_2}{P_1})
    (4)Otsu方法:使阈值分割后各个像素类的类间方差最大。
    步骤:将像素按灰度值进行分级,计算从第0个灰度级到第k个灰度级的概率和均值(数学期望),M个阈值将灰度值分为M+1个像素类,计算每个像素类的概率、平均灰度、方差,所有像素类的概率之和为1,图像总的平均灰度是所有像素类灰度的数学期望,类内方差定义为像素类灰度方差的数学期望,类间方差定义为像素类灰度均值的方差。
    (5)p参数法
    选取一个阈值T使得目标面积与背景面积的比为p:(1-p)
    3、局部阈值
    (1)直方图变换法
    对波谷进行切割或峰谷颠倒、根据像素的梯度值进行加权
    (2)散射图
    二维坐标图,横轴为灰度,纵轴为某种局部性质(如梯度值),亮度表示频数。根据亮色进行聚类。
    4、动态阈值
    网格划分,每个子图像定一个阈值。
    一种动态阈值算法:
    子图像分解→对于具备“双峰”采用最优阈值→插值得到其他阈值→分割

    7.2 基于区域的分割

    1、区域生长
    实质是bfs,需要初始种子,相似性准则
    2、区域分裂与合并
    先进行迭代四分裂,满足一致性条件后停止迭代,然后进行合并

    7.3 边缘检测

    常见的边缘类型:阶跃型、斜坡型、线状型、屋顶型
    1、微分算子
    在这里插入图片描述
    结论:一阶导数的幅度值可以用来检测边缘的存在,通过检测二阶导数的过零点可以确定边缘的中心位置,利用二阶导数在过零点附近的符号可以判断是在边缘的亮区还是暗区,处理之前要先消噪。
    (1)梯度算子:
    Krisch、Prewitt,均可沿8个方向
    (2)高斯-拉普拉斯算子
    结合了高斯平滑滤波器与拉普拉斯锐化滤波器。
    在这里插入图片描述
    在这里插入图片描述
    (3)Canny边缘检测
    Canny算子是一个非常有效的边界检测算子。
    ①首先对灰度图像进行高斯平滑。
    ②接着计算每个像素的梯度幅值和梯度方向。
    ③ 然后细化边缘。如果当前像素的梯度幅值不高于梯度方向上两个邻点的梯度幅值,则抑制该像素响应,这种方法称之为非最大抑制。
    ④ Canny算子使用两个幅值阈值,高阈值用于检测梯度幅值大的强边缘,低阈值用于检测梯度幅值较小的弱边缘。低阈值通常取为高阈值的一半。
    ⑤ 边缘细化后,就开始跟踪具有高幅值的轮廓。
    ⑥ 最后,从满足高阈值的边缘像素开始,顺序跟踪连续的轮廓段,把与强边缘相连的弱边缘连接起来。
    2、边界连接
    幅度阈值、角度阈值
    3、哈夫变换
    前提条件:已知区域形状
    (1)直线检测
    y=ax+b→b=-ax+y→{b=axi+yib=axj+yj\left \{\begin{matrix}b=-ax_i+y_i \\ b=-ax_j+y_j\end{matrix}\right.
    在这里插入图片描述
    如果多个点在同一条直线上,则在参数空间中对应直线必交于同一点。
    步骤:参数a、b进行量化,对于目标空间的每一个点,让a取遍每一个值apa_p,代入b=-ax+y,得到bpb_p,给A(p,q)++,处理完所有像素查找峰值即可知道最可能的a与b。
    斜截式方程有缺陷,一般可以换为法线式方程:ρ=xcosθ+ysinθ\rho=xcos\theta +ysin\theta
    (2)圆的检测:
    {a=xrcosθb=yrsinθ \left \{ \begin{matrix} a=x-rcos\theta \\ b=y-rsin\theta \end{matrix} \right.
    (3)任意曲线的检测:类似做法

    7.4 区域标记与轮廓追踪

    1、区域标记
    递归标记:BFS
    序贯标记:左、左上、上、右上邻点,如果都是背景,当前点新建标记;如果有一个被标记,复制标记;如果有两个不同标记,赋值之一,并在等价表中记录,再次扫描把等价的标记改为最小标记。
    2、轮廓提取
    八面合围置为背景
    3、轮廓追踪
    步骤:扫描图像,选定左上角点,初始dir为左下方向(4方向中为向下),逆时针查找边界点,查找到的新边界点作为当前点,在顺时针转回一个方向,迭代直到回到起始点。

    7.5 分水岭分割

    1、基本分水岭算法
    降雨法:降水,递归寻找低洼点,雨水流向>=2个低洼的是分水岭。
    淹没法:提升水位,如果水流溢出地外就筑坝,最后堤坝就是分水岭。
    2、Vincent-Soille算法
    类似并查集,提升水位,水平面与一些点相交,对于这些点,如果邻接点没有标记,新建标记,如果有标记,复制标记(取最近的积水盆地)
    使用分水岭分割之前先做距离变换,去除粘连。

    7.6 现代分割方法(略)

    7.7 图像分割实例

    大米计数:
    (1)高斯滤波、中值滤波或开闭运算消噪
    (2)消除非均匀光照:背景照度估计、灰值形态学、同态滤波
    (2)区域分割

    第8章 图像特征与理解

    图像特征:人视觉能够识别的自然特征,分为全局特征和局部特征。
    ,全局特征用于描述图像或目标的颜色或形状等整体特征,局部特征指一些能够稳定出现并具有良好可区分性的特征。

    8.1 图像的基本特征

    提取图像几何特征之前,分割和二值化处理。
    1、几何特征
    (1)位置和方向
    位置:质心
    方向:最小二阶矩轴(最小转动惯量)
    (2)周长
    隙码:把像素看成小方块后图形的绝对周长
    链码:边界像素中心点连线的长度
    边界点数之和:边界像素的个数
    (3)面积
    像素计数面积:统计边界内部像素的个数
    由边界行程码计算面积:
    ①已知区域的行程编码,只需把值为1的行程长度相加,即为区域面积。
    ②若给定边界的某种表示,则相应连通区域的面积应为区域外边界包围的面积,减去它的内边界包围的面积(空的面积)
    yk=y0+i=0kΔyiΔyi={1,εi=1,2,30,εi=0,41,εi=5,6,7Δxi={1,εi=0,1,70,εi=2,61,εi=3,4,5A=i=1n(yi1Δxi+a) y_k=y_0+\sum_{i=0}^k\Delta y_i \\ \Delta y_i=\left \{\begin{matrix}-1,\varepsilon _i = 1,2,3 \\ 0,\varepsilon _i = 0,4\\ 1,\varepsilon _i = 5,6,7 \\\end{matrix}\right. \\ \Delta x_i=\left \{\begin{matrix}-1,\varepsilon _i = 0,1,7 \\ 0,\varepsilon _i = 2,6\\ 1,\varepsilon _i = 3,4,5 \\\end{matrix}\right. \\ A=\sum_{i=1}^n(y_{i-1}\Delta x_i+a)
    由边界坐标计算面积:利用格林公式,A=12i=1Nb(xiyi+1xi+1yi]A=\frac 1 2 \sum_{i=1}^{N_b}(x_iy_{i+1}-x_{i+1}y_i]
    (4)长轴和短轴
    最小外接矩形的长与宽
    (5)距离
    欧式距离、市区距离、棋盘距离
    2、形状特征
    (1)矩形度=物体面积/最小外接矩形面积
    长宽比=最小外接矩形的宽与长的比值
    (2)圆形度:
    致密度=周长^2/面积
    边界能量:物体的周长为P,p表示边界点到某一起始点的距离,该点处的曲率半径为r§,则曲率为K§=1/r§,边界能量为E=1P0pK(p)2dpE=\frac 1 P\int_{0}^{p}|K(p)|^2\mathrm{d}p,在面积相同的情况下,圆具有最小的边界能量E0=(2πP)2=(1R)2E_0=(\frac {2\pi} P)^2=(\frac 1 R)^2
    原型性=区域质心到边界点的平均距离/区域质心到边界点的距离均方差,当区域R趋向圆形时,圆形性趋向无穷。
    面积与平均距离平方的比值=面积/内部点到边界点的平均距离
    3、球状性=内切圆半径/外接圆半径
    4、偏心率=区域长轴/区域短轴
    5、形状描述子
    (1)边界链码
    在这里插入图片描述
    在这里插入图片描述
    (2)一阶差分链码
    为了改进边界链码在旋转过程中会改变的情况。
    在这里插入图片描述
    (3)傅里叶描述子
    原理:将二维问题转化为一维问题进行处理,可以将边界曲线转化为一维函数,或者将边界曲线转化为复平面上点的序列。假定有一个复数序列,可以对其采用采用离散傅里叶变换,得到的结果就成为傅里叶变换子。

    8.2 角点特征

    角点:亮度变化最剧烈、图像边缘曲线上曲率最大,具有高信息密度和旋转不变的特性
    角点检测算法的4个准则:检测性、定位性、稳定性、复杂性
    角点检测方法的分类:基于边缘的检测算法、基于灰度变化的检测算法。前者做法是找曲率最大边界点或拐点或进行多边形拟合,但抗噪差且依赖边缘提取结果。后者做法为对局部结果进行分析,进行角点性质检测。
    1、Moravec算法
    灰度变化定义为沿各个方向移动窗口的灰度值与当前窗口灰度值差的平方和。
    E(u,v)=(x,y)W(I(x+u,y+v)I(x,y))2 E(u,v)=\sum_{(x,y)\in W}(I(x+u,y+v)-I(x,y))^2
    在这里插入图片描述
    2、Harris算法
    在Moravec算法基础上给不同方向的灰度变化方差加上权值,该权值为二维高斯窗口函数。
    E(u,v)=(x,y)Ww(x,y)(I(x+u,y+v)I(x,y))2w(x,y)=e(xx0)2+(yy0)22σ2I(x+u,y+v)I(x+u,y+v)=I(x,y)+uIx+vIy:E(u,v)=[u,v]M[u,v]TM=(x,y)Ww(x,y)[Ix2IxIyIxIyIy2]=[abcd] E(u,v)=\sum_{(x,y)\in W}w(x,y)(I(x+u,y+v)-I(x,y))^2 \\ w(x,y)=e^{-\frac {(x-x_0)^2+(y-y_0)^2} {2\sigma^2}} \\ 对I(x+u,y+v)进行泰勒展开:I(x+u,y+v)=I(x,y)+uI_x+vI_y \\ 代入上面的式子得:E(u,v)=[u,v]\boldsymbol M[u,v]^T \\ \boldsymbol M=\sum_{(x,y)\in W}w(x,y)\begin{bmatrix}I_x^2 &amp; I_xI_y \\ I_xI_y &amp; I_y^2 \end{bmatrix}=\begin{bmatrix}a &amp; b \\ c &amp; d \end{bmatrix}
    特征值λ1与λ2决定了矩阵M的性质:
    在这里插入图片描述
    3、SUSAN算法
    角点处的SUSAN面积具有局部最小值
    在这里插入图片描述

    8.3~8.6 (略)

    附加:图像匹配

    方法:投影法与差影法
    投影法:分为水平投影法和垂直投影法。基本原理是统计每行或每列目标像素的个数,得到一个直方图,根据直方图很容易就能找到目标图像的位置。
    差影法:利用同一景物同一时刻或不同时刻的图像,进行加、减、乘、除代数运算,分析得出某一物体的位置和运动情况

    第9章图像编码

    9.1 图像编码概述

    1、图像编码的基本原理和方法
    (1)图像数据冗余:
    空间冗余:内部相邻像素较强的相关性导致的冗余
    时间冗余:相邻两帧图像之间的相关性导致的冗余
    信息熵冗余:编码冗余,用于表示信源符号的平均比特数大于其信息熵时所产生的冗余。信息熵H=i=1Npilbpi=i=1Npilb1pilbNH=-\sum_{i=1}^{N}p_ilbp_i=\sum_{i=1}^{N}p_ilb\frac 1 {p_i}\le lbN
    结构冗余:图像中存在较强的纹理结构和自相似性
    知识冗余:图像中包含与某些先验知识有关的信息
    视觉冗余:人眼不能感知的那部分信息
    (2)图像编码方法
    分类:有损编码和无损编码;熵编码、预测编码、变换编码、量化编码
    熵编码:
    ①哈夫曼编码、香农-范诺编码、算术编码
    ②理论基础:平均码长等于信息熵时,总可设计出一种无损编码
    ③等长编码与变长编码
    ④变长编码定理:若一个离散无记忆信源的符号集具有r个码元,熵为H,则总可以找到一种无失真编码,构成单义可译码,使其平均码长L满足HlbrLHlbr+1\frac H {lbr}\le L \le \frac H {lbr}+1
    预测编码:基于图像数据的空间或时间冗余性,利用相邻已知像素预测当前像素的值,再对预测误差进行量化和编码。
    变换编码:空间域图像正交变换到另一变换域上,降低相关性。
    量化编码:通过将动态范围较大的输入信号映射到有限个离散值上。
    2、图像编码新技术(略)
    3、图像编码评价
    编码效率:平均码字长度L,压缩比CRC_R,编码效率η
    L=i=1NpiLiCR=BLη=HL L=\sum_{i=1}^{N}p_iL_i \\ C_R=\frac B L \\ \eta = \frac H L
    编码质量:均方误差MSE、峰值信噪比PSNR
    算法复杂度和算法的适用范围

    9.2 哈夫曼编码

    不会的挨打

    9.3 香农-范诺编码

    1、基本方法:
    信源符号出现概率降序排序;
    计算符号对应码字长度:logDPiNilogDPi+1-log_DP_i\le N_i \le -log_DP_i+1
    计算累加概率:Ai=k=0i1piA_i=\sum_{k=0}^{i-1}p_i
    将累加概率转换为二进制,取前NiN_i位。
    2、二分法香农-范诺编码方法
    在这里插入图片描述

    9.4 算术编码

    两种模式:基于信源概率统计特性的固定编码模式、针对未知信源概率模型的自适应模式
    在这里插入图片描述

    9.5 行程编码

    aabbbcddddd=2a3b1c5d

    9.6 LZW编码

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

    展开全文
  • 成都理工大学《数字图像处理》期末考试复习提纲
  • 本次《数字图像处理》课程作业要求使用数字图像处理技术自动定位,分割和识别车牌。其中数据需要使用老师提供的数据(50张车牌图片),尽量使用课程中老师讲授的传统的数字图像处理领域的知识,不使用深度学习(除非...

    自动定位、分割、识别汽车车牌

    1 实验内容与目的

    本次《数字图像处理》课程作业要求使用数字图像处理技术自动定位,分割和识别车牌。其中数据需要使用老师提供的数据(50张车牌图片),尽量使用课程中老师讲授的传统的数字图像处理领域的知识,不使用深度学习(除非仅仅使用老师提供的数据集)。

    2 方法概述

    整个算法的流程见下表:

    序号 步骤
    1 图像的预处理
    2 车牌粗定位
    3 车牌精定位
    4 车牌区域切割
    5 字符切割
    6 字符识别

    2.1 图像的预处理

    由于老师所给的数据集中每一种车牌的背景颜色不同,有白色的车牌、黄色的车牌以及最常见的蓝色的车牌,所以这里对于不同背景颜色的车牌进行分开讨论。我们在这里使用背景为蓝色的车牌举例说明图像预处理的部分。
    首先考虑到待识别的图片的背景比较复杂,并且有较多的噪声,所以这里将RGB像素值比较低的彩(蓝)色噪声去掉,防止噪声对于后续操作的干扰。
    然后接着将蓝色的区域进行提取,并在灰度图中尽量显示出来,这里提取的方法主要使用的是蓝色的RBG值为(0,0,255)。然后再对于蓝色提取后的区域进行归一化,并使用二值化的函数进行二值化的操作,从而的到原图像对应的灰度(二值化)图像。
    接着对于以上的二值化的图像(二维的二值化图像)进行连通区域的标记,这里是为了找到“蓝色”区域中面积最大的区域,并将其初步认为其是车牌所在的区域,并使用函数对于连通区域的属性进行度量,来判断具体哪一个区域为蓝色所标记的区域。再对于这些区域的面积进行排序,将面积比较大的区域进行初步的标记。
    选择得到初步的车牌位置后需要对于图像进行闭运算,使用因为使用闭运算可以使得轮廓线更为光滑,而且可以消弥狭窄的间断和长细的鸿沟,消除小的空洞,并填补轮廓线中的断裂,这样就可以将车牌中的字体(通常在一个图片中面积比较小)也纳入到上面所标记的所谓的车牌的区域中。
    进行完成图像聚类(图像的闭运算,填充图像后),我们再一次对于连通的区域进行标记,与上一次操作不同的是,这里我们仅仅选择面积最大的区域作为我们所认定的暂时的车牌区域,并将此二值化的图片(矩阵)送入下一个“车牌的粗定位”步骤中进行进一步的操作。
    其实这一步的图像预处理等价于使用了形态学滤波的方法进行了图像的预处理工作。

    2.2 车牌粗定位

    这里的粗定位的方法其实可以与上一步联系在一起,因为其实在图像的预处理中已经找到了车牌的位置,这里的车牌粗定位的工作是确定行的起始位置和终止位置,以及列的起始位置和终止位置,并将其原来的彩色图像恢复,用于下一步真正的细定位的工作。
    具体的做法是,首先为了不改变图像的分辨率,将其变更为double类型的图片。
    接着,首先确定行的起始位置和终止位置,这里将图像预处理工作得到的结果在横向上进行了加和,由于是二值化的图像,所以只有0和1两个数值,所以可以很明显的在通过统计的曲线看出黑白区域的边界部分,从而可以比较好的确定具体的行的起始位置和终止位置。
    然后确定列的起始位置和终止位置,这里将图像预处理工作得到的结果在纵向上进行了加和,由于是二值化的图像,所以只有0和1两个数值,所以可以很明显的在通过统计的曲线看出黑白区域的边界部分,从而可以比较好的确定具体的列的起始位置和终止位置。
    最终,通过行列的统计结果,即标记的行列的终止和起始的位置,从原彩色图片中切割出粗定位后的图片,并予以显示。

    2.3 车牌精定位

    接下来是图片精定位的工作,由于上一步骤中图像的粗定位中仍然存在一下的问题:首先是角度不一定是水平的,这是因为数据本身的拍摄角度不同,有很多的照片使用前面的粗定位和图像预处理后,整个的车牌的角度并不是水平,这就会对于以后的字符切割工作造成麻烦,所以进行角度的旋转是很必要的;另外一方面,我们还需要对于水平的图像进行裁剪。期间每进行完一次的操作后,都是用直方图对于操作后的结果进行分析。
    首先进行角度变换之前,要进行如下的操作,由于取得的是车牌粗处理的图片,首先进行resize将不同大小的区域都resize为同样大小的区域;接着进行二值化和形态学的开操作,一个开操作是一个腐蚀操作再接着一个膨胀操作使用相同的结构元素。这样可以求得图片的主要的特征,并且将噪声进一步的去除。然后再找出图像的主要目标以及其对应的最大的连通区域。
    接下来我们可以根据以上操作的结果来进行角度的变化,这里的角度变换的前提是车牌粗定位的时候,边界的区域比较精确而且完全近似于矩形,这里我们直接使用MATLAB自带的函数计算矩形的长边长与水平方向的夹角,从而得到需要的旋转角度,再使用MATLAB自带的图像旋转工具进行图像的旋转。
    由于经过旋转后的图像的分辨率会下降很多,所以这里我继续对于旋转后的图片进行了基于形态学的开运算。
    最后将最终的图像进行切割,得到最终的车牌精定位的结果,并把结果转换为二值化的图像,方便以后的字符识别。在过程中,我每操作一步都会使用直方图检验分割的效果。

    2.4 车牌区域切割

    上步骤中的车牌精定位的效果达到了预期的目标,但是在图像的周围还是存在“黑边”这对于后续的字符的识别会产生严重的干扰,所以我们还是需要“真正”体现车牌信息的区域进行切割。
    这里考虑的方法就是,在横向最左和最右端分别以一个像素的步长向中心移动,直到遇到“白色”的像素值,这里为了防止“白色”噪声的干扰,通过设置阈值或者说是形态学直方图的阈值对于条件进行判断,从而增加模型的鲁棒性能。在纵向也相同,最上端和最下端分别以一个像素的步长向中心移动,直到遇到“白色”的像素值,这里为了防止“白色”噪声的干扰,通过设置阈值或者说是形态学直方图的阈值对于条件进行判断,从而增加模型的鲁棒性能。
    经过“车牌区域切割”的操作后,我们得到的就是完整并且不带任何“边界”的纯车牌信息了。

    2.5 字符切割

    经过上面的四步骤,我们得到了完整并且不带任何“边界”的纯车牌图片,所以接下来进行字符的切割操作。
    这里的字符切割完全考虑到的是单行的车牌的识别,对于数据集中出现的两行的车牌暂时没有考虑这种情况。
    算法中首先需要计算得到区域中有多少个文字出现,这里考虑的是使用计算连通区域的方法,与图像预处理的想法基本一致,计算有多少个面积大于一定阈值的连通区域就确定为多少个文字(英文字母)出现,另外一点,一般的车牌的文字+字母+数字的个数不会超过8个,所以这里我将连通区域的数目规定为小于8个。
    然后我们使用MATLAB自带的函数对于连通区域进行判断与定位,并将其初步使用bbox进行定位。接着对于所有的bbox分别计算他们在水平和竖直方向上的长度,并将这个平均长度视为每一个文字区域的长度,在竖直方向也一样,将平均的宽度视为每一个文字区域的宽度。但是对于水平方向还需要如下的进一步细分,还是判断在每一个文字区域内的连通区域,一般来说如果分类正确应该在每一个文字区域中只有一个连通区域(这里的中文由于进行了开运算,也是可以看作为一个连通区域,即使文字出现了偏旁部首)。如果发现了多个(一般为两个或者三个)连通区域,那么就将切割范围在水平方向上进行细微的调动,直到完成每一个文字中有且只有一个连通区域的目标。
    这样我们就可以定位到每一个文字区域的边界点(定位点),从而进行切割操作。这里为了方便,我们将切割的目标区域的数量定位7个。因为一般的车牌号码是:省的简称+一个字母(两个字母)+五个数字(四个数字)组成的。这样我们将最终切割得到了7个文字区域交给下一个字符识别来进行。

    2.6 字符识别

    由于不能使用现成的OCR以及深度神经网络进行这里的字符识别,严格来说是字符的匹配。其中匹配的模板是自己切割的数字0-9是个数字以及a-z这26个字母,其中这里的字母I和O因为在车牌中和数字1和0基本完全相同,所以这里没有识别字母I和字母O的,这里一切都是直接使用数字1和数字0来代替。
    我们这里将识别汉字和识别数字、字母分开来看,首先来看数字和字母的识别。
    我们如果默认车牌是由7个字符组成的,即省的简称+一个字母(两个字母)+五个数字(四个数字)组成的话,那么后六个应该就是数字以及字母的位置。这里考虑首先对于切割出来的每一个字符区域与数字+字母的模板(切割的数字0-9是个数字以及a-z这26个字母),进行点乘,其目的在于进一步匹配两者的近似程度,还有一个细节是,我自己制作的模板与前一步分割出来的字符正好的相反的,即模板的“黑色”区域是切割出来字符的“白色”区域,所以在进行点乘之前需要先将区域进行二值化的反转操作,使用阈值为0.5的反转函数就可以轻易的实现。进行点乘完后,我们对于点乘后的图片(矩阵),再进行连通区域的标定,并且计算出其最大的面积,使用这个最大的面积与模板在进行MSE的计算,对于一个字符区域与每一个模板进行上述的操作,从中找到一个MSE最小的标定块,并认为其就是与字符相同的模板。这也就达到了识别的效果。不过这一切识别正确的前提是,之前的图像预处理、车牌的细分割以及最后的字符的分割做的准确无误。
    接下来是汉字的识别。我们如果默认车牌是由7个字符组成的,即省的简称+一个字母(两个字母)+五个数字(四个数字)组成的话,那么第一个区域应该就是数字以及字母的位置。其中一个细节是,我自己制作的模板与前一步分割出来的字符正好的相反的,即模板的“黑色”区域是切割出来字符的“白色”区域,所以在进行操作之前需要先将区域进行二值化的反转操作,使用阈值为0.5的反转函数就可以轻易的实现。在这里我首先对于字符进行较为微弱的腐蚀运算接着使用这个字符区域与每一个中文字符模板进行MSE的计算操作,最终MSE最小的模板就直接认为其是正确的模板,并认为其就是与字符相同的模板。这也就达到了识别的效果。不过这一切识别正确的前提是,之前的图像预处理、车牌的细分割以及最后的字符的分割做的准确无误。
    所以模型最后的字符识别成功,关键在于前面定位以及分割算法的精细程度以及准确率。

    3 源代码的解释与说明

    3.1 图像预处理源代码说明

    图像预处理算法的源代码在rgb2filtered.m文件中。
    首先考虑到待识别的图片的背景比较复杂,并且有较多的噪声,所以这里将RGB像素值比较低的彩(蓝)色噪声去掉,防止噪声对于后续操作的干扰。然后接着将蓝色的区域进行提取,并在灰度图中尽量显示出来,这里提取的方法主要使用的是蓝色的RBG值为(0,0,255)。主要的实现代码如下:
    在这里插入图片描述
    然后再对于蓝色提取后的区域进行归一化,并使用二值化的函数进行二值化的操作,从而的到原图像对应的灰度(二值化)图像。
    在这里插入图片描述
    接着对于以上的二值化的图像(二维的二值化图像)进行连通区域的标记,这里是为了找到“蓝色”区域中面积最大的区域,并将其初步认为其是车牌所在的区域,并使用函数对于连通区域的属性进行度量,来判断具体哪一个区域为蓝色所标记的区域。再对于这些区域的面积进行排序,将面积比较大的区域进行初步的标记。
    在这里插入图片描述
    选择得到初步的车牌位置后需要对于图像进行闭运算,使用因为使用闭运算可以使得轮廓线更为光滑,而且可以消弥狭窄的间断和长细的鸿沟,消除小的空洞,并填补轮廓线中的断裂,这样就可以将车牌中的字体(通常在一个图片中面积比较小)也纳入到上面所标记的所谓的车牌的区域中。
    在这里插入图片描述
    进行完成图像聚类(图像的闭运算,填充图像后),我们再一次对于连通的区域进行标记,与上一次操作不同的是,这里我们仅仅选择面积最大的区域作为我们所认定的暂时的车牌区域,并将此二值化的图片(矩阵)送入下一个“车牌的粗定位”步骤中进行进一步的操作。
    在这里插入图片描述
    同样的方法如果是黄色背景或者其他颜色的背景,可以直接将提取的颜色设置为需要的RGB颜色即可,另一方面,为了鲁棒性的优势,这里可以将RGB的提取范围扩大,从而将更多的区域归入其中,从而提高识别的效率和准确性等程度。

    3.2 车牌粗定位源代码说明

    车牌粗定位的源代码在rough_locate.m文件中。
    这里的粗定位的方法其实可以与上一步联系在一起,因为其实在图像的预处理中已经找到了车牌的位置,这里的车牌粗定位的工作是确定行的起始位置和终止位置,以及列的起始位置和终止位置,并将其原来的彩色图像恢复,用于下一步真正的细定位的工作。
    首先是确定行的起始位置和终止位置,这里将图像预处理工作得到的结果在横向上进行了加和,由于是二值化的图像,所以只有0和1两个数值,所以可以很明显的在通过统计的曲线看出黑白区域的边界部分,从而可以比较好的确定具体的行的起始位置和终止位置。
    在这里插入图片描述
    然后确定列的起始位置和终止位置,这里将图像预处理工作得到的结果在纵向上进行了加和,由于是二值化的图像,所以只有0和1两个数值,所以可以很明显的在通过统计的曲线看出黑白区域的边界部分,从而可以比较好的确定具体的列的起始位置和终止位置。
    在这里插入图片描述
    最终,通过行列的统计结果,即标记的行列的终止和起始的位置,从原彩色图片中切割出粗定位后的图片,并予以显示。
    在这里插入图片描述

    3.3 车牌精定位源代码说明

    车牌精定位的源代码在precise_locate.m文件中。
    首先是二值化和形态学的开操作,一个开操作是一个腐蚀操作再接着一个膨胀操作使用相同的结构元素。这样可以求得图片的主要的特征,并且将噪声进一步的去除。然后再找出图像的主要目标以及其对应的最大的连通区域。
    在这里插入图片描述
    接下来我们可以根据以上操作的结果来进行角度的变化,这里的角度变换的前提是车牌粗定位的时候,边界的区域比较精确而且完全近似于矩形,这里我们直接使用MATLAB自带的函数计算矩形的长边长与水平方向的夹角,从而得到需要的旋转角度,再使用MATLAB自带的图像旋转工具进行图像的旋转。
    在这里插入图片描述
    最后将最终的图像进行切割,得到最终的车牌精定位的结果,并把结果转换为二值化的图像,方便以后的字符识别。
    在这里插入图片描述
    在过程中,我每操作一步都会使用直方图检验分割的效果,基本的代码为:
    在这里插入图片描述

    3.4 车牌区域切割源代码说明

    车牌区域切割源代码在final_crop.m文件中。
    对于去除黑边,这里考虑的方法就是,在横向最左和最右端分别以一个像素的步长向中心移动,直到遇到“白色”的像素值,这里为了防止“白色”噪声的干扰,通过设置阈值或者说是形态学直方图的阈值对于条件进行判断,从而增加模型的鲁棒性能。在纵向也相同,最上端和最下端分别以一个像素的步长向中心移动,直到遇到“白色”的像素值,这里为了防止“白色”噪声的干扰,通过设置阈值或者说是形态学直方图的阈值对于条件进行判断,从而增加模型的鲁棒性能。
    在这里插入图片描述
    接着再使用切割得到车牌的矩形区域。
    在这里插入图片描述

    3.5 字符切割源代码说明

    字符切割源代码在seperate_characters.m文件和get_character.m文件中。
    算法中首先需要计算得到区域中有多少个文字出现,这里考虑的是使用计算连通区域的方法,与图像预处理的想法基本一致,计算有多少个面积大于一定阈值的连通区域就确定为多少个文字(英文字母)出现,另外一点,一般的车牌的文字+字母+数字的个数不会超过8个,所以这里我将连通区域的数目规定为小于8个。
    在这里插入图片描述
    然后我们使用MATLAB自带的函数对于连通区域进行判断与定位,并将其初步使用bbox进行定位。接着对于所有的bbox分别计算他们在水平和竖直方向上的长度,并将这个平均长度视为每一个文字区域的长度,在竖直方向也一样,将平均的宽度视为每一个文字区域的宽度。但是对于水平方向还需要如下的进一步细分,还是判断在每一个文字区域内的连通区域,一般来说如果分类正确应该在每一个文字区域中只有一个连通区域(这里的中文由于进行了开运算,也是可以看作为一个连通区域,即使文字出现了偏旁部首)。如果发现了多个(一般为两个或者三个)连通区域,那么就将切割范围在水平方向上进行细微的调动,直到完成每一个文字中有且只有一个连通区域的目标。

    在这里插入图片描述
    在这里插入图片描述
    这样我们就可以定位到每一个文字区域的边界点(定位点),从而进行切割操作。
    在这里插入图片描述

    3.6 字符识别源代码说明

    字符识别的源代码在characters_recognition.m文件中。
    由于不能使用现成的OCR以及深度神经网络进行这里的字符识别,严格来说是字符的匹配。其中匹配的模板是自己切割的数字0-9是个数字以及a-z这26个字母,其中这里的字母I和O因为在车牌中和数字1和0基本完全相同,所以这里没有识别字母I和字母O的,这里一切都是直接使用数字1和数字0来代替。
    首先是我们如果默认车牌是由7个字符组成的,即省的简称+一个字母(两个字母)+五个数字(四个数字)组成的话,那么后六个应该就是数字以及字母的位置。这里考虑首先对于切割出来的每一个字符区域与数字+字母的模板(切割的数字0-9是个数字以及a-z这26个字母),进行点乘,其目的在于进一步匹配两者的近似程度,还有一个细节是,我自己制作的模板与前一步分割出来的字符正好的相反的,即模板的“黑色”区域是切割出来字符的“白色”区域,所以在进行点乘之前需要先将区域进行二值化的反转操作,使用阈值为0.5的反转函数就可以轻易的实现。
    在这里插入图片描述
    进行点乘完后,我们对于点乘后的图片(矩阵),再进行连通区域的标定,并且计算出其最大的面积,使用这个最大的面积与模板在进行MSE的计算,对于一个字符区域与每一个模板进行上述的操作,从中找到一个MSE最小的标定块,并认为其就是与字符相同的模板。这也就达到了识别的效果。
    在这里插入图片描述

    3.7 主函数的源代码说明

    这里主函数的功能就是将以上的六个步骤总结在一起,并从选取待识别图片开始进行,一步一步进行图像预处理、车牌粗定位、车牌细定位、车牌切割、字符切割以及最终的字符识别的工作。具体的实现方式如下:
    在这里插入图片描述

    4 识别结果展示

    我们这里使用两个图片的结果说明:23.jpg和test0101.jpg。
    首先23.jpg的图像预处理的结果(左侧为原图,右侧为处理后的图片,这个图片仅仅是对于选定颜色的提取结果以及二值化后的结果):
    在这里插入图片描述
    在这里插入图片描述
    然后是经过连通区域以及闭运算后的结果,期间也使用了形态学滤波的方法进行了分析,过程也在下面进行显示,分别显示横向和纵向的统计结果:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    接着根据以上的结果,进行车牌的粗定位,并在原图中进行截取,截取的粗定位的车牌如下图:
    在这里插入图片描述
    接下来首先对于上面的车牌粗定位的图像进行开运算并进行二值化的操作,并在水平和竖直方向分别统计,结果如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    然后对于上面的二值化图像进行旋转,使得其水平。并在水平和竖直方向分别统计,结果如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    接着对于车牌进行细微的再分割,目的是与最终的匹配的模板一致,将上下左右侧的黑边去除,算法运行后的切割的结果如下:
    在这里插入图片描述
    然后对于上面的图像进行字符级别的切割,结果如下(这是7个单独的图片):
    在这里插入图片描述
    接着是使用模板匹配的方法进行字符识别,其中自己制作的模板如下图:
    在这里插入图片描述
    在这里插入图片描述
    然后分别对于每一个分割后的字符进行模板的匹配,这里分别在横向和纵向对于图像进行分析匹配,匹配结果和横向的统计结果如下图(这里以英文和数字为例说明结果):
    在这里插入图片描述
    最后将匹配的结果通过命令行输出:
    在这里插入图片描述
    下面来看另外一个图片的例子:test0101.jpg。
    首先test0101.jpg的图像预处理的结果(左侧为原图,右侧为处理后的图片,这个图片仅仅是对于选定颜色的提取结果以及二值化后的结果):
    在这里插入图片描述
    在这里插入图片描述
    然后是经过连通区域以及闭运算后的结果,期间也使用了形态学滤波的方法进行了分析,过程也在下面进行显示,分别显示横向和纵向的统计结果:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    接着根据以上的结果,进行车牌的粗定位,并在原图中进行截取,截取的粗定位的车牌如下图:
    在这里插入图片描述
    接下来首先对于上面的车牌粗定位的图像进行开运算并进行二值化的操作,并在水平和竖直方向分别统计,结果如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    然后对于上面的二值化图像进行旋转,使得其水平。并在水平和竖直方向分别统计,结果如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    接着对于车牌进行细微的再分割,目的是与最终的匹配的模板一致,将上下左右侧的黑边去除,算法运行后的切割的结果如下:
    在这里插入图片描述
    在这里插入图片描述
    然后对于上面的图像进行字符级别的切割,结果如下(这是7个单独的图片):
    在这里插入图片描述
    然后分别对于每一个分割后的字符进行模板的匹配,这里分别在横向和纵向对于图像进行分析匹配,匹配结果和横向的统计结果如下图(这里以英文和数字为例说明结果):
    在这里插入图片描述
    最后将匹配的结果通过命令行输出:
    在这里插入图片描述

    5 其他方法的尝试

    5.1 基于卷积的特征提取和矩形度约束的方法

    这个方法的效率比较低,其基于卷积运算首先对于特征进行提取,在由此进行的车牌的识别工作。这里使用的卷积核的形式如下:
    在这里插入图片描述

    由此来检测水平方向和竖直方向的变化情况(并突出边缘的部分,使得车牌的部分更加清晰),对于(2)WJ03-警0037.jpg这个图片进行完如下的卷积操作以后的图形如下所示:
    在这里插入图片描述
    在这里插入图片描述
    然后对于车牌进行二值化的操作,并计算出连通区域内的面积,通过设置阈值将面积小于一定数值的区域删除,留下来大的区域,同时这里还进行了连通区域的长宽比以及近似矩形度的计算,因为我们最后确定的区域应该是一个矩形域而且它的长宽比一定是确定范围内的数字,经过查阅查阅资料,一般的车牌的长宽比大约为4:1与5:1之间,所以可以根据这种条件来对于车牌的具体区域进行区分与寻找。这里的主要实现代码如下:
    在这里插入图片描述
    通过这套算法,最终得到的车牌的区域为:
    在这里插入图片描述
    对于上图进行canny算子进行边缘检测的结果为:
    在这里插入图片描述

    5.2 基于canny算子边缘检测的方法

    5.2.1 图像的预处理

    这里首先将输入的图片转化为灰度的图像,然后对其进行基于Canny算子的边缘检测。其结果如下图:这里使用test00000120050921201034561.jpg这幅图片举例:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    这里使用Canny进行边缘检测是因为,车牌的背景与其周围的物体(车身)的颜色有明显区别,在颜色中使用梯度计算的话,这种差距更为明显,所以使用Canny算子进行边缘提取,可以比较好的找到车牌对应的位置,但是同时也会存在很多别的边缘,例如车身边缘与道路边缘等等,所以还需要后面继续处理。
    这里的方法是首先使用线性的结构元素对于Canny算子计算得到的边缘图像进行腐蚀,其目的在于找到线性的边界位置,然后再使用矩形结构的元素遂于图像进行聚类与填充。腐蚀后的结果以及填充后的图像如下图所示:
    在这里插入图片描述
    在这里插入图片描述
    可以从上面的结果看出,图像中还有许多的“噪声区域”,车牌的位置相比于这些“噪声区域”来说面积均比较大,所以这里从对象种移除面积小于2000的小对象,即进行形态学的滤波。其结果如下:
    在这里插入图片描述

    5.2.2 车牌的定位

    进行车牌的定位的话,首先应该进行车牌的粗定位从而确定车牌的行列的起始位置和终止位置。这里直接对于上一步经过填充后的图进行白色像素点的统计,使用行方向像素点值的累计和和列方向像素点值的累计和来选择概率最大的车牌的位置。经过粗定位后的车牌的图像如下图所示,其行列方向的像素点值的累计和的图像见下图:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    下面对于图像进行精定位。其主要工作之一就是去除车牌两侧的边框干扰,这里选择的方法是从四个边界向中心“推进”,以1为步长。遇到白色的区域即截止,遇到黑色值的点截止,并标记。从而最终得到精确定位的车牌的二值图像。最终的图像如下,这里我也在列方向对于像素点的灰度值进行了形态学的累计和。
    在这里插入图片描述
    在这里插入图片描述

    5.2.3 字符的分割

    这里采用的是倒序分割。其原因在于第一个字符一般为汉字,对于汉字的识别比较差,因为汉字本身比较复杂,而且本身数据集中图像分辨率就比较差,而且对于有偏旁部首的汉字,很容易就会将其分割为多个汉字。但是对于数字和字母来说其结构一般比较简单,所以这里采用倒序的分割方法。
    具体的分割方法是,使用MATLAB自带的函数对于连通区域进行判断与定位,并将其初步使用bbox进行定位。接着对于所有的bbox分别计算他们在水平和竖直方向上的长度,并将这个平均长度视为每一个文字区域的长度,在竖直方向也一样,将平均的宽度视为每一个文字区域的宽度。但是对于水平方向还需要如下的进一步细分,还是判断在每一个文字区域内的连通区域,一般来说如果分类正确应该在每一个文字区域中只有一个连通区域(这里的中文由于进行了开运算,也是可以看作为一个连通区域,即使文字出现了偏旁部首)。如果发现了多个(一般为两个或者三个)连通区域,那么就将切割范围在水平方向上进行细微的调动,直到完成每一个文字中有且只有一个连通区域的目标。
    最终的字符切割的结果如下:
    在这里插入图片描述

    5.2.4 字符的车牌识别

    这里使用的与上面所描述的车牌识别方法完全相同,就是使用字符的匹配法。具体来说,使用分割所得的字符图片与模板点乘完后,我们对于点乘后的图片(矩阵),再进行连通区域的标定,并且计算出其最大的面积,使用这个最大的面积与模板在进行MSE的计算,对于一个字符区域与每一个模板进行上述的操作,从中找到一个MSE最小的标定块,并认为其就是与字符相同的模板。这也就达到了识别的效果。最终的上面的识别结果为:
    进行点乘完后,我们对于点乘后的图片(矩阵),再进行连通区域的标定,并且计算出其最大的面积,使用这个最大的面积与模板在进行MSE的计算,对于一个字符区域与每一个模板进行上述的操作,从中找到一个MSE最小的标定块,并认为其就是与字符相同的模板。这也就达到了识别的效果:
    在这里插入图片描述

    5.3 基于图像增强的方法

    这里的图像增强是主要考虑到图像的分辨率比较差,而且有部分的车牌数据是在黑暗的环境下的图像,且有部分的车牌比较“陈旧”亮度与新车牌不同,肉眼所见都比较模糊,所以这里在进行图像预处理的时候首先进行了图像的增强。
    这里采用的图像增强的方式是使用了原始图像与背景图像做减法,从而突出待识别区域的“亮度”。再使用上述的方法就可以提高识别效果,这里的图像增强的结果如下图(依次为原始的黑白图像、背景图像以及增强后的图像):
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    这里我还考虑到使用《数字图像处理》课程中介绍的Top-hat(顶帽)或者是Black-hat(黑帽)等形态学滤波方法进行图像的增强,结果发现效果并不好,故不再使用这种方法。使用Top-hat的具体结果如下多图(分别为原图和算法处理后的图)。
    在这里插入图片描述
    在这里插入图片描述

    6 实验结论与所思所想

    本次实验我将自动定位、分割和识别汽车车牌这个任务分成了六个子任务来做,分别是图像的预处理、车牌的粗定位、车牌的精定位、车牌区域切割、字符切割以及字符识别。其中我的实验重点在图像的预处理这一部分,因为这一部分与课上所讲授的知识最贴合,而且对于最终的识别结果影响最大。
    在图像的与处理中我分别使用了连通区域、开闭运算、图像聚类(图像填充)、基于形态学滤波、基于卷积的特征提取与矩形度的约束、图像增强(Top-hat以及Black-hat等方法)以及Canny等边缘检测等方法进行图像的预处理。从而得到了非规则的车牌可能出现的区域。
    在车牌的粗定位处理中,我主要使用了基于统计学的方法对于图像进行水平方向和竖直方向的二值化图像的像素点值的累计和进行分析并初步确定车牌的矩形区域并删去面积小于一定阈值的区域。
    在车牌的精定位处理和车牌区域切割中,首先进行二值化以及形态学的开操作(去除噪音),并使用角度变化使得车牌变水平,方便后面的车牌和字符切割操作。再对于周围的黑色边框进行去除,这个车牌的最终的区域。
    在字符切割方面,通过连通区域和基于统计学的方法对于图像进行水平方向和竖直方向的二值化图像的像素点值的累计和对于每个字符的位置进行判断,从而得到最终的每一个字符的位置。
    最终的字符识别方面,通过事先已经准备好的模板与我们的切割后的单个字符进行匹配,选择MSE最小的模板对应的文字(数字或字母)作为最终的字符识别的结果。
    最终的结果,我的算法以及后面实现的一些单独步骤的算法可以在某些车牌数据中取得100%的识别结果(蓝色底色的),但是对于大部分的数据识别效果还是比较差。原因如下,首先车牌的数据相比于成熟算法所以用的数据集分辨率较差而且车辆(车牌)的尺寸明显较小,需要比较精细的定位。而且,图像中存在夜间以及不同环境下的图像,车牌的背景颜色不同,甚至有的车牌不是单行的,这导致对于算法的泛化性能要求就变高了。最后,可能自己的理论知识、实践能力以及代码能力比较差。
    这个大作业可以从以下的几点进行改进:首先我算法中使用的前提是蓝色的背景的车牌,对于白色和黄色为背景颜色的车牌识别效果很差,所以这里可以使用边缘检测的方法对于车牌的位置进行寻找。这样可以进一步增加车牌识别的鲁棒性能。然后车牌的切割时,应该考虑到每一个字符的位置基本是确定的(国家应该有标准),所以可以以此作为一个约束进行车牌中字符位置的判断。另外,在图像的预处理方便,可以对于在黑夜中的信息进行图像的增强,对于分辨率很低的图像进行超像素等工作,来进一步提高字符切割以及字符识别的准确度。

    7 实验心得与收获

    本次实验通过传统的数字图像处理的算法进行车牌的自动定位、分割、识别,我个人觉得最大的收获在于,我们没有使用现在比较火热的深度学习的方法进行以上的工作,而完全使用传统的数字图像处理的方法进行识别。使用深度学习的我们或许根本就不会对于整个问题进行深入的分析,直接将其作为一个目标识别问题使用YOLO或者Faster RNN等网络进行定位车牌,再使用基于深度学习的OCR进行字符的识别,例如CRNN深度学习网络。这根本达不到我们分析问题解决问题的能力。

    参考文献
    [1] Yang F, Yang F. Detecting license plate based on top-hat transform and wavelet transform[C]//2008 International Conference on Audio, Language and Image Processing. IEEE, 2008: 998-1003.
    [2] Anagnostopoulos C N E, Anagnostopoulos I E, Psoroulas I D, et al. License plate recognition from still images and video sequences: A survey[J]. IEEE Transactions on intelligent transportation systems, 2008, 9(3): 377-391.

    展开全文
  • 冈萨雷斯《数字图像处理》第三版全书图片库,适合于从事数字图像处理的人员。
  • 《数字图像处理》.孙燮华 一共15章的源代码,对有一点儿c#基础的同学提高数字图像处理有很大的帮助!
  • 《数字图像处理》课程设计题目
  • _武汉大学《数字图像处理》期末考试试卷及答案.docx
  • 西安电子科技大学-《数字图像处理》PPT课件全套;全套课件汇总;通信工程学院;计算机学院;电子工程学院;人工智能学院等;
  • 武汉大学《数字图像处理》期末考试试卷及答案;教材为冈萨雷斯第三版中英文教授。
  • 《数字图像处理》常用函数 一、图像处理 读取影像数据 /*读取影像数据*/ MatrixXd readImgData(const char* path) { //注册文件格式 GDALAllRegister(); //设置支持中文路径 CPLSetConfigOption("GDAL_FILENAME_...
  • 武汉大学《数字图像处理》期末考试试卷及答案.pdf
  • 《数字图像处理》ppt讲义北大陈晓鸥《数字图像处理》ppt讲义北大陈晓鸥《数字图像处理》ppt讲义北大陈晓鸥《数字图像处理》ppt讲义北大陈晓鸥
  • 《数字图像处理》胡学龙 第三版 课后习题答案,答案比较全
  • 冈萨雷斯版《数字图像处理》课件(数字图像基础),对于苦于课本太厚的同学很有帮助
  • 武汉大学2018年研究生《数字图像处理》期末试卷,有需要的自行下载
  • 武汉大学《数字图像处理》历年期末考试试卷(含答案)
  • 《数字图像处理》实验指导书,指导性质的参考.
  • 《数字图像处理》自学笔记(一)

    千次阅读 2020-09-24 22:04:59
    MOOC课 武汉大学 《数字图像处理》自学 https://www.icourse163.org/learn/WHU-1002332010?tid=1450249452#/learn/content?type=detail&id=1214403361 笔记: 一、绪论 1.1:数字图像处理的概念 彩色图像和非...
  • 北京航空航天大学《数字图像处理》期末考试试卷(含答案)
  • 因为要讲,自己做的ppt,《数字图像处理》第10章前三节:  部分博客参考于: https://blog.csdn.net/yuyuntan/article/details/80141392 https://blog.csdn.net/qq_18815817/article/details/78625845 ...
  • 图像恢复 浙江大学《数字图像处理》第五章
  • 浙江大学《数字图像处理》第六章 图像压缩专题

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,499
精华内容 999
关键字:

《数字图像处理》