图像分割与边缘检测
定义
根据图像的灰度、颜色、空间纹理、几何形状等特征,将图像划分成若干个互不相交的区域的过程。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V4dwG7IQ-1636795729944)(C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20211108094552258.png)]
- 图像中同一区域内部所考虑的特征是相同的或者相近的(具有同质特征);但这些特征在不同区域中则是不同的或者是存在差异的。
- 区域:是指相互连通的、有一致属性的像素的集合。
- 像素间的连通性:在一个连通集合中,任意两个像素之间都存在一条完全由该集合中的像素构成的连通路径。
- 连通路径:一条可以在相邻像素间移动的路径。
- 对于数字图像,有两种常用的连通性准则:4连通、8连通
- 4连通:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pXh0N0cl-1636795729946)(图片/image-20211108101122367.png)]
- 8连通:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YYqIApQc-1636795729948)(图片/image-20211108101154220.png)]
目的
具有共同特征的目标列在一起
关键问题在于如何描述目标的共同特性
图像分割方法
- 灰度图像分割算法一般是基于相邻像素灰度的不连续性或相似性来实现。
- 不同区域之间的边界上一般具有灰度不连续性,可根据灰度的不连续变化来分割图像。
- 同一区域内部的像素一般具有灰度的相似性,可根据事先定义的相似性准则来分割图像。
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V2ouo3qe-1636795729950)(图片/OWZ54MEF`UO]IJ$@2A.png)
灰度阈值分割法
基本思想:用一个或几个灰度阈值(也称灰度门限值)将图像的灰度级范围分成几个部分,然后将每个像素的灰度值和阈值相比较,根据比较结果把像素归类——前景目标物体或背景。
- 灰度阈值分割法的基本步骤:
- 确定阈值(关键)
- 将像素灰度值与阈值进行比较
- 把像素归类
全局阈值
利用灰度直方图确定阈值
-
该方法适用于目标物体与背景分别占据不同灰度级范围的图像。此时图像的灰度直方图呈明显的双峰特征(分别对应背景和目标物体),或呈明显的多峰特征(分别对应背景和多个目标物体)。可以在两峰之间的谷底区域选取一个灰度值作为阈值,进行分割。
-
图像二值化
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EcpVWYRZ-1636795729952)(图片/image-20211108110725047.png)]
-
note:由于噪声及光照影响,给阈值的选择增加了复杂性
- 极小点阈值法
如果将直方图的包络线看成一条曲线,则通过求取曲线的极小值的方法可以找到直方图的低谷点,作为分割阈值。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Td2Kue8e-1636795729953)(图片/image-20211108111843087.png)]
在求极小值点之前,若对直方图进行平滑处理,则效果会更好。例如3点平滑,平滑后的灰度级i的相对频数用灰度级i-1,i,i+1的相对频数的平均值代替。
- 迭代阈值法
- 算法基本步骤:
- 选择一个初始阈值T1
- 根据阈值T1,将图像分割为G1和G2两部分。其中G1包含灰度值小于等于T1的所有像素,G2包含灰度值答于等于T1的所有像素
- 分别计算G1和G2的灰度平均值μ1和μ2
- 计算新的阈值T2=(μ1+μ2)/2
- 如果|T2-T1|<=T0(T0为预先指定的一个很小的正数,用于迭代收敛),即迭代过程中前后两次的阈值很接近时,迭代终止;否则将T2赋值给T1,重复执行上述步骤
- 最后输出T2即为所求阈值
- 最优阈值法(利用最小化误差概率确定阈值)
- 有时用某个阈值很难准确地把目标物体与背景分割开,总会出现分割误差(一部分目标物体像素被错分为背景,或一部分背景像素被错分为目标物体)。
- 基本思想:选择一个阈值T,使得划分像素时所产生的总误差概率最小。
- 要能构造出阈值T与总误差概率之间的函数关系
- 基本原理:
- 假设原图像中只包含两个主要的灰度区域(背景和前景目标物体)
- 令z表示灰度级,p(z)表示灰度级概率密度函数
- 设对应于背景的灰度级概率密度函数为p1(z),对应于目标物体的灰度级概率密度函数为p2(z)。
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0EegujVk-1636795729954)(图片/image-20211109114750287.png)]
-
大律法Ostu(最大类间方差法确定阈值)
它与类内方差最小准则是等价的
- 该方法确定最佳阈值T的准则是:使得阈值分割后的两个像素类(一个是前景目标物体像素类,另一个是背景像素类)的类间方差最大。
- 要能够造出阈值T与类间方差之间的函数关系。
- Ostu的思想:方差是灰度分布均匀性的一种度量,方差越大,说明构成图像的两部分差别越大,当部分目标错分为背景或部分背景错分为目标都会导致两部分差别变小,因此使类间方差最大的分割意味着使错分概率最小。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s2McbP7A-1636795729955)(图片/image-20211109142210667.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GA5eZXDT-1636795729956)(图片/image-20211109173916731.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SqVrfXIP-1636795729957)(图片/image-20211109173928803.png)]
全局阈值方法
图像目标与背景在直方图上对应的两个波峰陡峭、对称且双峰之间有较深的波谷或双峰相距很远。
局部阈值
借助像素领域的局部性质(如像素的梯度值与拉普拉斯值)来确定阈值。
图像噪声等因素的影响会使得图像直方图双峰之间的波谷被填充或者双峰距离很近。此外,当图像目标与背景面积差别很大时,在直方图上表现的就是较小的一方被较大的一方淹没。——单峰。
-
直方图变换法
直方图变换法利用的是像素的某种局部性质,将原来的直方图变换成具有更深波谷的直方图,或者使波谷变换成双峰,使得谷点或峰点更容易检测到。
根据像素的梯度值或灰度级的平均梯度做出一个加权直方图。
- 散射图法
散射图也可以看作一个二维直方图,其横轴表示灰度值,纵轴表示某种局部性质(如梯度),图中各点的数值是同时具有某个灰度值与梯度值的像素个数。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TgUO5DpM-1636795729958)(图片/image-20211110141130465.png)]
只取实际散射图左下角128x32大小的区域并放大三倍,其他部分均为黑色。散射图中某点的颜色越亮,表示图像中同时具有该点的坐标对应的灰度值和梯度值的像素越多。**散射图中有两个接近横轴且沿横轴相互分开的较大的亮色聚类,分别对应目标与背景的内部像素。离横轴稍远的地方有一些较暗的点,位于两个亮色聚类之间,它们对应目标与背景边界上的像素点。如果图像中存在噪声,则它们在散射图中位于离横轴较远的地方。**如果在散射图中将两个聚类分开,根据每个聚类的灰度值和梯度值就可以实现图像的分割。
动态阈值
由于光照不均匀等因素的影响,图像背景的灰度值并不恒定,目标与背景的对比度在图像中也会有变化,图像中还可能存在不同的阴影。无法使用单一的全局阈值对整幅图像进行分割,可以将整幅图像分解成一系列子图像,对不同的子图像使用不同的阈值进行分割。这种与像素坐标有关的阈值就称为动态阈值或自适应阈值。子图像之间可以部分重叠,也可以只相邻。
一种动态阈值方法基本步骤:
- 将整幅图像分解成一系列相互之间有50%重叠的子图像。
- 检测各子图像的直方图是否具有双峰性质。如果是,则采用最优阈值法确定该子图像的阈值,否则不进行处理。
- 根据已得到的部分子图像的阈值,插值得到其他不具备双峰性质的子图像的阈值。
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6g2W6YDI-1636795729958)(图片/image-20211110150510614.png)]
- 根据各子图像的阈值插值得到所有像素的阈值。对于每个像素,如果其灰度值大于该点的阈值,则分为目标像素,否则分为背景像素。
基于区域的分割方法
区域生长法
基本思想:把具有相似性质的像素逐渐结合起来生成区域
基本步骤:
-
对要分割的区域确定一个或多个元素(种子元素)作为生长的起点;
-
根据灰度、颜色、纹理或梯度等特性,确定生长过程中使用的一个相似性准则;
-
从种子像素开始向外扩张:首先以种子像素构成一个当前集合,然后不断将与当前集合中各个像素连通的(4连通或8连通)、并满足相似性准则的像素加入到当前集合中。最后直到不再有满足条件的新像素加入到当前集合为止,即再没有可接受的领域像素时停止生长。
note:按照4领域和8领域生长,结果有所不同。
按照8领域进行生长能够得到较精确的结果
总结步骤:
- 选择合适的种子点
- 确定相似性准则(生长准则)
- 确定生长停止条件
区域分裂合并法
基本思想:按照某种一致性准则,不断地分裂或合并区域。
note:区域生长和区域分裂两种分割方法的异同
-
当一个区域不满足一致性准则时,将其分裂成大小相等且互不重叠的四个子区域。当任意两个区域满足一致性准则时,可将其合并为一个大区域。
-
通常是先区域分裂,再区域合并,也可以分裂和合并同时进行,最后得到图像的分割结果。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-35WHc40M-1636795729959)(图片/image-20211110173324383.png)]
- 可用四叉树表示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ejX1ddFD-1636795729960)(图片/image-20211110174939064.png)]
边缘检测
什么是边缘检测:
- 边缘定义为图像局部特征的不连续性。具体到灰度图像中,就是图像上灰度不连续的点或灰度急剧变化的地方。
- 广泛存在于目标物体与背景之间的交界处,或者目标物体与目标物体之间的交界处。
- 沿着边缘走向的灰度缓变或不变,而垂直于边缘走向的灰度则突变。
常见的边缘类型:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3DQiEovk-1636795729961)(图片/image-20211110180055736.png)]
微分算子
可利用各种微分算子运算进行边缘检测,基于微分运算的各种图像锐化算法都可用于图像边缘检测。
梯度算子
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kRkPSQfi-1636795729962)(图片/image-20211110180541250.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kBIgvNg4-1636795729962)(图片/image-20211110180653543.png)]
- 阈值选择很重要
高斯—拉普拉斯算子(也称LOG算子):
- 由于拉普拉斯算子对噪声敏感,因此考虑先用平滑滤波进行去噪,再用二阶微分进行边缘检测。
- 由高斯平滑和拉普拉斯微分合并得到的算子称为高斯—拉普拉斯算子(LOG算子)。即把高斯平滑滤波器和拉普拉斯锐化滤波器相结合。
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rLaOeOYy-1636795729963)(图片/image-20211110182824631.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OTMrGGZe-1636795729964)(图片/image-20211110184023789.png)]
- LOG算子则能提取对比度弱的边缘,边缘定位精度高。
Canny边缘检测算子
实现基本需要四个步骤:
- 高斯滤波对图像进行平滑处理
- Sobel算子计算图像的梯度幅值
- 对图像的梯度幅值进行非极大值抑制
- 滞后阈值处理进行边缘连接
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UY2G8SpK-1636795729964)(图片/image-20211110191356574.png)]
- 几种基于微分的经典边缘提取算子共同的优点是计算简单、速度较快;缺点是对噪声的干扰都比较敏感
二值图像的轮廓提取与轮廓跟踪
轮廓提取和轮廓跟踪的目的都是为了获取目标区域的外部轮廓特征,为形状分析和目标识别做准备。
二值图像的轮廓提取——掏空内部点法
基本原理:设一副二值图像(背景为白,前景目标物体为黑),从上到下,从左到右依次扫描图像中的每个像素,若当前像素为黑(0),并且它的8邻域像素也都为黑,说明该像素是目标物体内部点,则将该像素置为白(1)。对所有像素都执行以上操作,便可提取出前景目标物体的轮廓。
轮廓跟踪
轮廓跟踪就是通过顺序找出边缘点来跟踪边界的。
-
若图像是二值图像或不同区域具有不同的像素值,但每个区域内的像素值是相同的,基于4连通或8连通区域的轮廓跟踪算法:
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lWhuGonO-1636795729966)(图片/image-20211110203134272.png)]
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iBpis8Je-1636795729966)(图片/image-20211110204340416.png)]
- “探测准则"和"跟踪准则”
边界链码:链码是对边界点的一种编码表示方法,其特点是利用一系列具有特定长度和方向的相连的直线段来表示目标的边界。因为每个线段的长度固定而方向数目有限,所以只有边界的起点需要用绝对坐标表示,其余点都可以只用接续方向来代表偏移量。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IxlzKsJs-1636795729967)(图片/image-20211110210410772.png)]
图像模板匹配
-
什么是模板匹配?
- 是指用一个比较小的图像(也称模板图像)与原图像进行比较,来确定在原图像中是否存在与该模板图像相同或相似的区域,若该区域存在,可确定其位置并提取该区域。
-
常用的模板匹配测度:
模板图像与原图像上对应区域的误差平方和。
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4RamGH24-1636795729968)(图片/image-20211110211437613.png)]
-
上式展开得:
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dYGFVoRA-1636795729968)(图片/image-20211110211604747.png)]
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g7cmWE6N-1636795729969)(图片/image-20211110211812678.png)]
-
-
模板匹配过程:
-
设原图像f(x,y)与模板图像t(j,k)的原点重合(都在左上角)。
-
模板图像在原图像上从左到右从上到下移动,对原图像中的任何一个位置(x,y)都可计算出一个匹配测度R(x,y)。
-
当R(x,y)取最大值时,此时的(x,y)指出了原图像中与模板图像的最佳匹配位置。
-
从该位置开始在原图像中提取与模板图像大小相同(JxK)的区域,则是最终的匹配结果。
-
-
模板匹配法的特点:
-
用归一化互相关求图像匹配,计算量很大。匹配过程中模板图像要在(M-J+1)x(N-K+1)个参考位置上计算归一化互相关。
-
模板匹配法的局限性:由于模板图像只能在原图像上平行移动,若原图像中要匹配的目标发生旋转或大小变化,则该方法无法完成匹配。
-
图像的几何变换
图像几何变换基础
-
什么是图像几何变换
是指使用户设计的原始图像,能够按照需要,产生大小、形状和位置的几何变换。
-
图像几何变换的实质
图像几何变换不是改变图像的像素值,而是改变像素所在的几何位置。
-
图像几何变换的应用
- 几何校正:消除因摄像机导致的图像几何畸变
- 比如:某些图像系统使用非矩形的像素坐标,用普通显示设备观察这些图像时,要先对其进行几何校正,将其转换为矩形像素坐标。
- 图像配准:对两幅相似的图像进行比较,比如,利用图像相减来检测变化。
- 几何校正:消除因摄像机导致的图像几何畸变
-
图像几何变换分类
- 从图像类型划分
- 二维图像的几何变换
- 三维图像的几何变换
- 由三维图像向二维图像的投影变换
- 从变换性质划分
- 基本变换:平移、镜像、旋转、比例缩放等
- 复合变换
- 从图像类型划分
-
齐次坐标
- 二维图像几何变换可通过相应的矩阵线性变换来实现,为了能用统一的矩阵线性变换形式表示二维图像几何变换,引入了齐次坐标。
- 齐次坐标:用n+1维向量表示n维向量的方法
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iH4X8TdG-1636795729970)(图片/image-20211111115047386.png)]
-
二维图像几何变换矩阵
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QOT2sdTv-1636795729970)(图片/image-20211111115150490.png)]
- 点集矩阵:图像中所有像素点的规范化齐次坐标矩阵。
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QOT2sdTv-1636795729970)(图片/image-20211111115150490.png)]
图像平移变换
将图像上所有像素点,按照水平方向和垂直方向给定的偏移量(为整数)移动,平移后图像上的每个像素点都可以在原图像中找到对应像素点。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EkOEuJ2S-1636795729971)(图片/image-20211111121025070.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OA1FrdaC-1636795729972)(图片/image-20211111121441337.png)]
图像镜像变换
- 镜像变换也称对称变换
- 图像镜像变换的两种形式:
- 水平镜像
- 垂直镜像
- 镜像后图像上的每个像素点都在原图像中找到对应像素点
- 对角镜像
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7I97rh92-1636795729973)(图片/image-20211111122258152.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BIEMWMTY-1636795729974)(图片/image-20211111123025855.png)]
图像旋转变换
图像旋转变换矩阵
- 将图像上的所有像素点绕图像中心旋转相同的角度。令逆时针旋转角度为正,顺时针旋转角度为负。
- 图像的旋转实际上是坐标系的旋转,下图给出了旋转的原理示意图,
- 为了尽量不扩大画布,所以是以画面的中心点为坐标原点进行旋转的。
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Acy1Fv61-1636795729975)(图片/image-20211111152820218.png)]
图像旋转变换的具体处理方法
- 按照上述旋转公式计算出的结果存在两个问题:
- 计算出的坐标值可能是小数,而图像中像素点的坐标值均为正整数。
- 计算出的坐标值所在的范围与原坐标值所在范围不同。
解决办法:四舍五入取整、平移处理
- 旋转后出现两个现象:
- 像素的排列不是完全按照原有的相邻关系
- 出现空洞点,会影响画面质量
解决思路:
可采用某种填补方法填充空洞点——插值法
-
最简单的插值处理方法:行插值(或列差值)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p0hg8sZV-1636795729976)(图片/image-20211111154517853.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4rlO4rH6-1636795729976)(图片/image-20211111154629549.png)]
图像比例缩放变换
图像比例变换矩阵
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tvb8fnW9-1636795729977)(图片/image-20211111155025352.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xIQzIab4-1636795729978)(图片/image-20211111155140423.png)]
图像比例缩放变换的具体处理方法
-
出现的问题:经过比例缩放后,新图像中的像素点可能在原图像中找不到相对应的像素点
-
解决方法:灰度插值处理
-
最邻近插值法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VXocI0D1-1636795729979)(图片/image-20211111155648390.png)]
-
双线性插值法
-
-
从信息处理角度来看,图像缩小是从多个信息中选出所需要的信息,而图像放大则是对多出来的空位填入适当的值,是信息的估计。
-
图像比例放大的实现:
- 放大整数倍时:若要将原图像垂直方向上放大k1倍,水平方向上放大k2倍(均为整数),则需要将原图像中的每个像素值,填在新图像中对应的K1xK2大小的子块中。
- 不为整数时,仍使用最邻近插值法
-
图像大比例放大时的马赛克效应?
-
双线性插值法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7RUo6Cu7-1636795729980)(图片/image-20211111162359976.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yLUoRDCi-1636795729981)(图片/image-20211111163414701.png)]
灰度级插值处理可采用如下两种方法。
第一,可以把几何变换想象成将输入图像的灰度一个一个像素地转移到输出图像中。如果一个输入图像被映射到四个输出像素之间的位置,则其灰度值就按插值算法在四个输出像素之间进行分配。把这种灰度级插值处理称为像素移交或称为向前映射法。
第二,像素填充或向后映射法。在这种算法中,输出像素一次一个地映射到原始(输入)图像中,以便确定其灰度级。如果一个输出像素被映射到四个输出像素之间,则其灰度值由灰度级插值决定。向后空间变换是向前变换的逆变换。
-
为了提高双线性插值的速度,双线性插值也可以分解成三个线性插值来实现,公式如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eqJ5xUaA-1636795729981)(图片/image-20211112100043556.png)]
- 双线性插值需要用到四次乘法、八次加(或减)法,所以几何变换程序一般选择后者。
图像复合变换
图像复合变换
图像的复合变换是指对给定的图像连续施行若干次如前所述的平移、镜像、比例、旋转等基本变换后所完成的变换,图像的复合变换又叫级联变换。图像复合变换的矩阵T可以表示为:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TdQ8MQvX-1636795729982)(图片/image-20211112105502256.png)]
- note:复合变换矩阵等于基本变换矩阵按顺序依此相乘,顺序改变会影响变换结果。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LdepZKTI-1636795729983)(图片/image-20211112105734904.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hIPQ4MKI-1636795729984)(图片/image-20211112105834066.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HcuoHuba-1636795729984)(图片/image-20211112105902237.png)]
透视变换
透视变换
把三维物体或对象转变为二维图形的过程称为投影变换。根据视点(投影中心)与投影平面之间距离的不同,投影可分为平行投影和透视投影,透视投影即透视变换。
平行投影的视点与投影平面之间的距离为无穷大,而对透视投影(变换),该距离是有限的。这个距离决定着透视投影的特性——透视缩短效应。即三维物体或对象透视投影的大小与形体到视点的距离成反比。例如,等长的两直线段,都平行于投影面,但离投影中心近的线段,其透视投影大,而离投影中心远的线段,透视投影小。这种效应所产生的视觉效果与照相机系统和人的视觉系统十分类似。与平行投影相比,透视投影的深度感更强,看上去更真实,但透视投影不能真实地反映物体的精确尺寸和形状。
-
投影变换:把空间三维立体投射到投影面上得到二维平面图形的过程。
-
几个相关概念:
- 投影中心:在三维空间中,选择一个点,记该点为投影中心。
- 投影平面:不经过投影中心定义一个平面,记该平面为投影面。
- 投影线:从投影中心向投影面引任意多条射线,记这些射线为投影线。
- 三维物体的投影:穿过物体的投影线将与投影面相交,在投影面上形成物体的像,记这个像为三维物体在二维投影面上的投影。
-
投影变换的实质是:从三维物体模型到二维图形描述的转换过程。
-
透视投影属于中心投影,它比轴测图更富有立体感和真实感。这种投影是将投影面置于投影中心与投影对象之间。
-
灭点:对于透视投影,一束平行于投影面的平行线的投影可保持平行,而不平行于投影面的平行线会汇聚到一个点,这个点被称为灭点。灭点可以看作是无限远处的一点在投影面上的投影,透视投影的灭点可以有无限多个,不同方向的平行线在投影面上就能形成不同的灭点,坐标轴方向的平行线在投影面上形成的灭点又称作主灭点。因为有X,Y,Z三个坐标轴,所以主灭点最多有3个。透视投影是按主灭点的个数来分类的,即按投影面与坐标轴的夹角来分类的,可分为一点透视,二点透视,三点透视。
-
变换矩阵[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dzMyH9eM-1636795729985)(图片/image-20211112141429689.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UtFrkfOK-1636795729987)(图片/image-20211112141637470.png)]
图像压缩编码
图像编码概述
图像编码基本原理
虽然表示图像需要大量的数据,但图像数据是高度相关的,或者说存在冗余信息,去掉这些冗余信息后,可有效压缩图像。
-
图像压缩的必要性
- 图像信息量大,需要大量存储空间。如卫星遥感测绘。
- 多媒体中海量图像数据的存储和处理。
- 图像传输
-
图像压缩的可能性
-
组成图像的各像素之间,存在着一定的相关性——空间冗余(像素间冗余)
- 对于给定像素的值可以通过它相邻的像素值进行适当的预测
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AsRpBoWD-1636795729987)(图片/image-20211112151537745.png)]
-
视频图像序列中的不同帧之间的相关性所造成的冗余——时间冗余
-
人眼不能感知或不敏感的那部分图像信息——视觉冗余
- 在不会削弱图像感知质量的情况下这些冗余可以消除。
- 眼睛对所有视觉信息感受的灵敏度不同,导致在正常处理过程中,各种信息的相对重要程度也不同。
- 消除心理视觉冗余会导致一定量的信息丢失,这一过程通常称为量化(表示从一个范围很广的连续输入值集合到一个有限的离散输出值集合的映射)
- 心理视觉冗余的压缩是不可恢复的(不可逆),所以量化的结果导致了数据有损压缩。
-
如果图像的灰度级在编码时用的编码符号个数多于表示灰度级实际所需要的编码符号个数,则称图像包含——编码冗余
-
图像的灰度级通常直接用二进制编码表示。此时,编码符号数可以看成是
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jaCljls8-1636795729988)(图片/image-20211112152351196.png)]
-
-
图像中存在很强的纹理结构或自相似性——结构冗余
-
在有些图像中还包含有某些先验知识有关的信息——知识冗余
图像数据的这些冗余信息为图像压缩编码提供了依据;信息论观点,去除冗余信息,节省存储和传输开销;某些场合,允许一定限度的失真压缩,更进一步提高压缩比。
-
图像编码的方法
-
根据编码过程中是否存在信息损耗可将图像编码分为无损压缩和有损压缩
-
根据编码原理可以将图像编码分为熵编码、预测编码、变换编码和混合编码等。
-
根据对压缩编码后的图像进行重建的准确程度,可将常用的图像编码分为信息保持编码、保真度编码、特征提取。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5lGlcIHH-1636795729988)(图片/image-20211112162611286.png)]
图像编码新技术
eg.利用人工神经网络的压缩编码、分形编码、小波编码、基于对象的压缩编码和基于模型的压缩编码。
-
分形编码
- 分形编码最大限度地利用了图像在空间域上的自相似性(即局部与整体之间存在的某种相似性),通过消除图像的几何冗余来压缩数据。(迭代函数系统用于描述图像的自相似性,并将其用于图像编码)
- 分形编码过程十分复杂,而解码过程却很简单,故通常用于对图像编码一次,而需译码多次的信息传播应用中。
-
小波编码
- 经过小波变换后的图像,具有良好的空间方向选择性,而且是多分辨率的,能够保持原图像在各种分辨率下的精细结构,与人的视觉特性十分吻合。
-
模型编码
- 低比特率编码方法
- 编码时利用先验模型抽取图像中的主要信息并用模型参数的形式表示,解码时则利用所接收的模型参数重建图像。
图像编码评价
四个参数:算法的编码效率、编码图像的质量、算法的适用范围、算法的复杂度
-
算法的编码效率
-
衡量图像编码效率的指标主要有平均码字长度(L)、压缩比(Cr)、编码效率(η)。
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eR24V61F-1636795729989)(图片/image-20211112174231157.png)]
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-trZR1IKE-1636795729990)(图片/image-20211112174259700.png)]
-
同一个压缩算法对不同图像的编码效率不同,通常会选用一些“标准图像”,通过测量不同压缩算法对**同一组“标准图像”**的编码性能来评价压缩算法的编码效率。
- 编码图像的质量
- 图像质量评价可分为客观质量评价和主观质量评价。最常用的客观质量评价指标是均方误差(MSE)和峰值信噪比(PSNR)。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F1dau62x-1636795729990)(图片/image-20211112195921732.png)]
主观质量评价是指由一批观察者对编码图像进行观察并打分,然后综合所有人的评判结果,给出图像的质量评价。
- 算法的适用范围
- 一般来说,大多数基于图像信息统计特性的压缩算法具有较广的适用范围。而一些特定的编码算法的使用范围较窄,如分形编码主要用于自相似性高的图像。
- 算法的复杂度即只完成图像压缩和解压缩所需要的运算量和硬件实现该算法的难易程度。
主观保真度准则(图像的主观质量评价)
通过向一些观察者显示解压缩图像,观察后对图像质量进行打分评判,最后对所有人的评判结果进行平均,得出图像的质量评价。
评分 | 评价 | 说明 |
---|---|---|
5 | 优秀 | 图像质量非常好,同期望的一样 |
4 | 良好 | 图像质量高,观看舒服,有干扰但不影响观看 |
3 | 可用 | 图像质量可接受,有干扰但不太影响观看 |
2 | 刚可看 | 图像质量差,干扰有些妨碍观看,希望改进 |
1 | 差 | 图像质量很差,干扰严重妨碍观看 |
0 | 不能用 | 图像质量极差,不能使用 |
小结
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WU6XZbQB-1636795729991)(图片/image-20211112201942247.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E1mkwurh-1636795729991)(图片/image-20211112202821983.png)]
图像压缩系统模型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SglX7VRf-1636795729992)(图片/image-20211112203108182.png)]
- 信源编码器
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lsyvBfVB-1636795729992)(图片/image-20211112203145931.png)]
信源编码器用于减少或消除原始图像中数据冗余
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zVJj1G5B-1636795729993)(图片/image-20211112203348507.png)]
-
信源解码器
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B8tJJfLS-1636795729994)(图片/image-20211112203528582.png)]
思考:为什么没有反向量化器?
因为量化过程导致了不可逆的信息损失,所以通常在信源解码器中不包含反向量化器。
哈夫曼编码
-
无损压缩的必要性:
- 在医疗或商业文件的归档,有损压缩因为法律原因而被禁止。
- 卫星成像的收集,考虑数据使用和所花费用,不希望有任何数据损失。
- X光拍片,信息的丢失会影响诊断的正确性。
-
无损压缩编码主要针对以下两种数据冗余:
- 编码冗余
- 像素间冗余
-
几种典型的无损压缩编码方法:
- 减少编码冗余
- 哈夫曼编码
- 香农—范诺编码
- 算术编码
- 减少像素间冗余
- 行程编码
- LZW编码
- 减少编码冗余
-
哈夫曼编码的理论基础
-
当平均码长R大于等于图像熵H时,总可设计出一种无失真编码。
-
当平均码长远大于图像熵时,表明该编码方法效率低;当平均码长等于或很接近于(但不大于)图像熵时,称此编码为最佳编码,此时不会引起图像失真;当平均码长大于图像熵时,压缩比较高,但会引起图像失真。在变长编码中,如果码字长度严格按照对应符号出现的概率大小逆序排列,则其平均码字长度为最小,这就是变长最佳编码定理,是哈夫曼编码的理论基础。
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I46JgFV7-1636795729994)(图片/image-20211112214534971.png)]
- 实现瞬时码:短码不是长码的码首。(唯一可译码包含瞬时码)
-
哈夫曼编码
一种无损的统计编码方法,与信源符号出现的概率有关
-
基本思想:
-
哈夫曼编码是一种变长编码。
把最短的码字赋予出现概率最大的信源符号
-
用变长的码使冗余量达到最小,用一颗二叉树来编码,常出现的字符用较短的码表示,不常出现的字符用较长的码来表示。
-
使得最终的平均码字长度最小。
- 即:码字的长度按照对应信源符号出现的概率大小逆序排列。
-
哈夫曼编码算法
寻找平均码长最短的一种编码方法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ga0oGFZF-1636795729995)(图片/image-20211112220426597.png)]
哈夫曼编码的特点:
-
Huffman编码得出的码字不唯一:
- 为每次合并的两个信源符号分配码元0或1时,可任意选择方案(概率大的赋0,小的赋1,或反之)
- 在排序过程中,两个概率相等的信源信号,谁前谁后也是任意的。
-
Haffman编码得到的码字不等长,但平均码字长度最小,编码效率高。
-
由于码字变化大,长短不一,硬件实现困难。
-
Huffman编码依赖于信源符号的统计特性,编码效率与信源符号的概率分布密切相关。
香农—范诺编码
-
基本思想:
-
香农—范诺编码也是一种变长编码。
- 与信源符号出现的概率有关,出现概率大的信源符号短码字。
-
其编码的理论基础是:信源符号的码字长度Bk由该信源符号出现的概率决定,即:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g0FoZakz-1636795729996)(图片/image-20211113091412558.png)]
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oWN8Bnhb-1636795729996)(图片/image-20211113091512358.png)]
-
香农—范诺编码算法步骤:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mjli6JIW-1636795729997)(图片/image-20211113092127167.png)]
二分香农—范诺编码
-
将信源符号按其出现概率从大到小排序
-
将符号分成两组,使两组符号的概率和尽可能接近,将第1组标0,第2组标1
-
重复步骤2,直到每组只有一个符号
-
将每个符号所属组的值依此串起来,即可得到各个符号的香农—范诺编码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LlfwhgDH-1636795729998)(图片/image-20211113095122238.png)]
算数编码
算数编码的基本思想
- 算数编码也是一种变长编码
- 与信源符号出现的概率有关
- 从整个信源符号序列出发,采用递推形式连续编码
- 信源符号和码字之间不存在一一对应关系。一个算数码字被赋给整个信源符号序列,码字本身确定0~1之间的一个实数区间。随着序列中信源符号数量的增加,用来代表它的实数区间减小。
算数编码的基本步骤:
- 统计信源符号出现的概率,设置当前区间为【0,1】
- 对依次出现的每个信源符号进行如下处理:
- 将当前区间分成子区间,子区间的长度正比于信源符号的概率
- 选择一个子区间对应于信源符号序列中的下一个信源符号,并以该子区间作为新的当前区间
- 对序列中的所有信源符号处理完后,输出当前区间的任意一个实数作为该信源符号序列的算数编码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2pv5qf4n-1636795729999)(图片/image-20211113105949294.png)]
行程编码
与信源符号出现的概率无关
- 基本思想:
- 也称为“游程编码”,又称行程长度编码。是一种熵编码,将具有相同值的连续串用其串长和一个代表值来代替,该连续串就称为行程,串长称为行程长度。
- 主要用于二值图像编码。是传真编码的标准压缩方法。用一个长度序列表示二值图像的每一行,这些长度描绘了黑色像素或白色像素的连续行程。
- 行程编码的基本原理:
- 对二值图像进行行扫描
- 将当前扫描行中的像素f (x, 0), f (x, 1), …f(x, N-1) 映射成一个行程序列{ ( g1, l1), ( g2, l2), … }, 每个( gi , li )代表一个行程。
- gi表示当前扫描行中遇到的第i个灰度级(在二值图像中,gi=0或1),它表明了当前扫描行中灰度的变化(有黑到白或有白到黑)。
- li表示灰度级为gi的行程长度,即连续具有相同灰度值gi的像素个数。
- 行程编码的特点:
- 若图像中包含大面积的灰度相同区域,采用行程编码可达到很高的压缩比。
- 若图像中的灰度分布很分散,行程编码不但不能起到压缩作用,反而可能会增加图像数据量。
- 所以,行程编码一般不单独使用,而与其它编码方法相结合。
LZW编码
-
LZW编码的基本思想:
- LZW算法又叫"串表压缩算法"就是通过建立一个字符串表,用较短的代码来表示较长的字符串来实现压缩。
- 将原始数据中的重复字符串建立一个字典(也称编码本),然后用该重复字符串在字典中的索引代替原始数据,从而达到压缩目的。
- 使用LZW压缩编码技术的文件格式包括有GIF、TIFF(标记图像文件格式)、PDF(可移植文件格式)等。
-
LZW编码算法的关键点:
- 与信源符号出现的概率无关
- 在编码开始之前,先构造一个对信源符号进行编码的初始编码本(字典)
- 当编码器顺序地分析图像像素时,凡是字典中没有出现过的灰度值连接序列,将被依次加入到字典中没有用过的位置。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0ocQHL7V-1636795729999)(图片/image-20211113170852247.png)]
在这里插入图片描述