数字图像处理与深度学习技术应用 课件 第4、5章 图像几何变换、图像的灰度变化_第1页
数字图像处理与深度学习技术应用 课件 第4、5章 图像几何变换、图像的灰度变化_第2页
数字图像处理与深度学习技术应用 课件 第4、5章 图像几何变换、图像的灰度变化_第3页
数字图像处理与深度学习技术应用 课件 第4、5章 图像几何变换、图像的灰度变化_第4页
数字图像处理与深度学习技术应用 课件 第4、5章 图像几何变换、图像的灰度变化_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章图像几何变换杨淑莹本章目录4.1仿射变换4.1.1平移

4.1.2

缩放

4.1.2旋转4.2重映射4.2.1复制

4.2.2绕x轴翻转

4.2.3绕y轴翻转4.2.4绕x轴与y轴翻转4.3投影变换4.3.1原理简介4.3.2Python实现4.4极坐标变换4.4.1原理简介

4.4.2Python实现4.5思考与练习设变换矩阵T为则上述变换可以用公式表示为基础知识介绍--图像几何变换旋转变换基础知识介绍--常用的几何变换平移变换

放缩变换将2×3阶变换矩阵T进一步扩充为3×3方阵这样一来,平移变换可以用如下形式表示:基础知识介绍--平移变换矩阵平移变换的表示法变换后的点集矩阵=变换矩阵T×变换前的点集矩阵平移变换注意:平移后的景物与原图像相同,但“画布”一定是扩大了。否则就会丢失信息。比例缩放变换图像的缩小一般分为按比例缩小和不按比例缩小两种。不按比例缩小一定会带来几何畸变。

缩小后,信息量小,所以画布可相应缩小。放大将原图像的一个像素添到新图像的一个k1*k2的子块中去。比例缩放变换水平镜像垂直镜像应用旋转变换图像旋转之后,会出现许多的空白点,对这些空白点必须进行填充处理,否则画面效果不好,称这种操作为插值处理。最简单的方法是行插值或是列插值:1)插值的方法是:空点的像素值等于前一点的像素值。2)同样的操作重复到所有行。旋转变换对给定的图像连续施行若干次如前所述的平移、镜像、比例、旋转等基本变换F1,F2,…,FN后,所完成的变换。复合变换的矩阵等于基本变换的矩阵按顺序依次相乘得到的组合矩阵,又叫级联变换。

T=TNTN-1…T1。若干次基本变换仍可用3×3阶表示。复合变换复合平移复合比例复合旋转基础知识介绍---图像的平移图像中所有的点都按照指定的平移量水平、垂直移动。设初始坐标为(x0,y0)的点经过平移(tx.ty)后,则点(x0,y0)坐标变为(x1,y1)。

tx

坐标原点(x0,y0)

ty

(x0,y0)和(x1,y1)的关系:

x1=x0+tx

y1=y0+ty基础知识介绍--图像平移变换

图像的镜像变换水平镜像:垂直中轴线为中心,将图像分为左右两部分;垂直镜像:水平中轴线为中心,将图像分为上下两部分。

镜像变换后图的高和宽都不变。x1=Width-x0y1=y0图像水平镜像变换x1=x0

y1=Height-y0图像垂直镜像变换效果对比图

图像的转置将图像像素的x坐标和y坐标互换。将改变图像的高度和宽度,转置后图像的高度和宽度将互换。

x1=y0

y1=x0图像转置效果对比图图像的旋转必须指明图像绕着什么旋转。一般图像的旋转是以图像的中心为原点,旋转一定的角度。旋转后,一般会改变图像的大小。

旋转后:

x1=x0cos(θ)+y0sin(θ)y1=-x0sin(θ)+y0cos(θ)图像旋转

效果对比图

x1=x0*kx

y1=y0*ky

假设图像X轴方向缩放比率是kx,Y轴方向缩放比率是ky。图像的缩放

kx>1且ky>1时,原图像被放大,面积增加。

由于放大图像时产生了新的像素,可通过插值算法来近似处理。

当kx=ky=2时,图像放大2倍,原图中的某一个像素,对应新图的4个像素。

●●●●

图像放大

表3.11234234056776633

表3.21122334411223344223344002233440055667777556677776666333366663333图像放大当kx<1且ky<1时,原图像被缩小。当kx=ky=0.5时,被缩小一半。原图中4个像素对应新图中的一个像素。此时缩小后的图像中的(0,0)像素对应于原图中的(0,0)、(0,1)、(1,0)、(1,1)像素。●●

●●●图像缩小效果对比图仿射变换是指通过一系列几何变换来实现平移、缩放、旋转等操作。OpenCV中为仿射变换提供的仿射函数为cv2.warpAffine(),可以通过一个映射矩阵M来实现这种变换。由变换矩阵M与原始图像矩阵相乘得到仿射变换函数cv2.warpAffine()的一般格式为:4.1

仿射变换4.1.1平移在已知变换矩阵M,cv2.warpAffine()完成图像的平移操作。【例4-1】使用仿射变换函数cv2.warpAffine()实现图像的平移。importcv2ascvimportnumpyasnpimage=cv.imread("F:/picture/panda.png")#读入panda图像h,w=image.shape[:2]#获取图像大小信息M=np.float32([[1,0,120],[0,1,-120]])#构建转换矩阵imageMove=cv.warpAffine(image,M,(w,h))#进行仿射变换——平移cv.imshow("image",image)#显示原始图像cv.imshow("imageMove",imageMove)#显示变换后的图像cv.waitKey()cv.destroyAllWindows()4.1.2缩放将原始图像缩小为一半时,转换矩阵M可以为:【例4-2】使用仿射变换函数cv2.warpAffine()实现图像的缩放。importcv2ascvimportnumpyasnpimage=cv.imread("F:/picture/panda.png")#读入panda图像h,w=image.shape[:2]#获取图像大小信息M=np.float32([[0.5,0,0],[0,0.5,0]])#构建转换矩阵imageMove=cv.warpAffine(image,M,(w,h))#进行仿射变换——缩放cv.imshow("image",image)#显示原始图像cv.imshow("imageMove",imageMove)#显示变换后的图像cv.waitKey()cv.destroyAllWindows()4.1.3旋转旋转操作时,cv2.getRotationMatrix2D()得到仿射变换函数cv2.warpAffine()的转换矩阵。ret=cv2.getRotationMatrix2D(center,angle,scale)·center是旋转的中心点。·angle表示旋转角度,正数为顺时针旋转,负数为逆时针旋转。·scale表示变换尺度。【例4-3】使用仿射变换函数cv2.warpAffine()实现图像的旋转。

importcv2ascvimage=cv.imread("F:/picture/panda.png")#读入panda图像h,w=image.shape[:2]#获取图像大小信息#得到转换矩阵M,效果是以图像的宽高的1/3为中心点顺时针旋转40°,缩小为原来的0.4M=cv.getRotationMatrix2D((w/3,h/3),40,0.4)imageMove=cv.warpAffine(image,M,(w,h))#进行仿射变换——旋转cv.imshow("image",image)#显示原始图像cv.imshow("imageMove",imageMove)#显示变换后的图像cv.waitKey()cv.destroyAllWindows()在仿射变换的过程中,物体的转换都是在二维空间中完成的,但是如果物体在三维空间中发生了转换,这种转换一般叫投影变换。4.3投影变换4.3.1原理简介因为投影变换是在三维空间内进行的,对其进行修正十分困难。如果物体是平面的,通过二维投影变换对此物体三维变换进行模型化,这就是专用的二维投影变换,可由如下公式描述:cv2.getPerspectiveTransform(src,dst)来计算投影变换矩阵,·dst表示目标图像。·src表示原始图像。注意这里需要输入4组对应的坐标变换,src和dst分别是4×2的二维矩阵,其中每一行代表一个坐标,而且数据类型必须是32位浮点型,否则会报错。4.3.2Python实现类似于仿射变换,OpenCV提供了cv2.warpPerspective()函数来实现投影变换功能。cv2.warpPerspective(src,M,dsize[,dst[,flags[,borderMode[,borderValue]]]])·src表示原始的图像。·M表示投影变换矩阵。·dsize表示投影后图像的大小。·flags表示插值方式。·borderMode表示边界模式。·borderValue表示边界值。其使用方法与仿射变换相似,只是输入的变换矩阵变为3行3列的投影变换矩阵。

【例4-12】编写程序,实现投影变换的图像操作。

importcv2ascvimportnumpyasnpimage=cv.imread("F:/picture/panda.jpg")h,w=image.shape[:2]#读取图像的高和宽#原图像的4个需要变换的像素点src=np.array([[0,0],[w-1,0],[0,h-1],[w-1,h-1]],np.float32)#投影变换的4个像素点dst=np.array([[80,80],[w/2,50],[80,h-80],[w-40,h-40]],np.float32)M=cv.getPerspectiveTransform(src,dst)#计算出投影变换矩阵#进行投影变换image1=cv.warpPerspective(image,M,(w,h),borderValue=125)#显示图像cv.imshow("image",image)cv.imshow("image1",image1)cv.waitKey()cv.destroyAllWindows()因为投影变换矩阵是由4组对应的坐标决定的,所以通过投影变换可以将一幅图“放在”任何不规则的四边形中,而仿射变换却保持了线的平行性。图4-12作者杨淑莹敬上谢谢!第5章图像灰度变换

杨淑莹主要内容概述二值化和阈值处理灰度线性与分段线性变换灰度非线性变换直方图5.1.1图像增强对比度增强——电子显微镜下的花粉5.1.1图像增强去除噪声——电路板X光图像5.1.1图像增强突出细节——骨骼X光图像5.1.1图像增强图象不清晰、不突出是多种因素造成的:采集中未突出所需部分,有干扰(噪音、散斑、运动模糊等等)。目标是比原图像更适合于特定的应用,便于识别,人工或后继处理。不同的问题适合采用不同的方法,评价结果好坏没有统一的标准。图像增强:不考虑降质原因,关心有用信息,抑制次要部分,去干扰,增强对比度。不一定要去逼近原图像。复原技术:针对降质原因,设法补偿降质因素,尽可能逼近原始图像,恢复原图。二者有重叠部分:增强带有恢复性质,突出有用信息上,且是局部性恢复。图像增强空间域图像增强频率域灰度变换空域滤波直接灰度变换直方图修正法图像的代数运算直方图均衡化直方图规定化图像平滑图像锐化高通滤波低通滤波带通、带阻滤波灰度变换图像获取中,经常出现以下情况(1)成像时光照不足,使得整幅图像偏暗(2)成像时光照过强,使得整幅图像偏亮(3)照射源或光敏器件本身动态范围太小,使得整幅图像的有用信息集中在灰度中间级。图像灰度变换按一定变换关系,逐点改变原图像中每一个像素灰度值的方法。是图像增强处理技术中一种非常基础、直接的空间域图像处理方法。目的是为了改善画质,使图像的显示效果更加清晰。点运算输入图像为f(x,y),输出图像为g(x,y)点运算为:g(x,y)=T[f(x,y)]是一种像素的逐点运算。g仅仅依赖f在(x,y)点的值描述了输入和输出值之间的转换关系。不改变空间位置关系。点运算又称为“对比度增强”、“对比度拉伸”、“灰度变换”。灰度变换根据g(x,y)=T[f(x,y)],可以将灰度变换分为线性变换和非线性变换。灰度线性变换输出灰度级与输入灰度级呈线性关系的点运算。灰度线性变换如果a>1,输出图像的对比度增大。如果a<1,输出图像的对比度减小。如果a=1,b≠0,使所有像素的灰度值上移或下移,使整个图像更暗或更亮。如果a=1,b=0时,输出、输入图像相同。如果a为负值,暗区域将变亮,亮区域将变暗。分段线性变换为了突出感兴趣的区间,抑制不感兴趣区域,可采用分段线性变换。非线性变换输出灰度级与输入灰度级呈非线性关系的点运算。25512025521025512025530对数运算指数运算非线性变换问灰度变换属于A点运算B领域运算5.2二值化和阈值处理经过阈值处理后的图像变成了一幅黑白二值图。实现步骤取得原图的数据区指针。通过对话框输入阈值T。所有像素依次循环,若像素灰度值小于T,则将该像素置为0;否则置为255。ggff

0T1T22550T1T2255(a)0-255-0型灰度变换函数(b)255-0-255型灰度变换函数

双固定阈值法双固定阈值法(a)0-255-0方式(b)255-0-255方式实现步骤取得原图数据区指针通过对话框输入阈值1(T1)和阈值2(T2),并选择方式(0-255-0)型或(255-0-255)型。若选择方式0(0-255-0型),每个像素依次循环,若该像素灰度值大于T1并且小于T2,则将其灰度值置为255,其余像素的灰度值置为0。若选择方式1(255-0-255型),每个像素依次循环,若该像素灰度值大于T1并且小于T2,则将其灰度值置为0,其余像素的灰度值置为255。5.3灰度线性与分段线性变换反色变换“颠倒黑白”适用于增强暗色区域的白色或灰色细节5.3灰度线性与分段线性变换窗口灰度变换灰度窗口变换的变换函数表达式如下:式中L表示窗口的下限,U表示窗口的上限。用于去除无用信息5.3灰度线性与分段线性变换分段线性变换分段线性的变换函数表达式如下:式中(x1,y1),(x2,y2)表示两个转折点坐标5.4灰度非线性变换灰度对数变换对数变换函数表达式如下:扩展低灰度值而压缩高灰度值,让图像的灰度分布更加符合人的视觉特性。5.4灰度非线性变换灰度指数变换指数变换函数表达式如下:扩展高灰度值而压缩低灰度值5.4灰度非线性变换灰度幂次变换幂次变换函数表达式如下:伽马校正成像系统各部分的器件输入——输出特性都是一个幂函数为弥补图像系统中的非线性传输环节,需要伽马校正5.4灰度非线性变换灰度幂次变换r=0.6,0.4,0.3暗图像变亮5.4灰度非线性变换灰度幂次变换r=3.0,4.0,5.0亮图像变暗5.5直方图灰度直方图表示图像中具有某种灰度级的像素的个数,反映了图像中每种灰度出现的频率。它是图像最基本的统计特征。横坐标:灰度级;纵坐标:该灰度级出现的个数数组形式47325.5直方图直方图性质只反映该图像中不同灰度值出现的次数(或频数),而未反映某一灰度值像素所在位置。丢失了位置的信息。图像与直方图之间是多对一的映射关系。直方图具有旋转、平移不变性由于直方图是对具有相同灰度值的像素统计得到的,因此,一幅图像各子区的直方图之和等于该图像全图的直方图。5.5直方图已知直方图,可以恢复出原图吗?A可以B不可以5.5直方图直方图计算将每个像素灰度值看做一个随机变量的样本,直方图是该变量的概率密度函数在离散形式下,用rk代表离散灰度级,nk为图像中出现rk级灰度的像素数,n是图像像素总数,而nk/n即为频数。初始化:p[k]=0;k=0,…,L-1。统计:p[f(x,y)]++;x,y=0,…,M-1,0,…,N-1。归一化:p(x,y)=p(x,y)/M

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论