教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 求职职场 >

基于Matlab的数字图像几何变换的实现(2)

来源:网络收集 时间:2026-09-08
导读: 图像在x方向和y方向不按比例放大,此时这种操作由于x方向和yfx fy(fx,fy 0)时, 方向的放大倍数不同,一定会带来图像的几何畸变。放大的方法是将原图像的一个像素添到新图像的一个k1 k2的子块中去。为了提高几何变

图像在x方向和y方向不按比例放大,此时这种操作由于x方向和yfx fy(fx,fy 0)时,

方向的放大倍数不同,一定会带来图像的几何畸变。放大的方法是将原图像的一个像素添到新图像的一个k1 k2的子块中去。为了提高几何变换后的图像质量,常采用线性插值法。该方法的原理是,当求出的分数地址与像素点不一致时,求出周围四个像素点的距离比,根据该比率,由四个邻域的像素灰度值进行线性插值。

2.2图像旋转原理

一般图像的旋转是以图像的中心为原点,将图像上的所有像素都旋转一个相同的角度。图像的旋转变换时图像的位置变换,但旋转后,图像的大小一般会改变。在图像旋转变换中既可以把转出显示区域的图像截去,也可以扩大图像范围以显示所有的图像。

同样,图像的旋转变换也可以用矩阵变换来表示。设点P0(x0,y0)逆时针旋转 角后的

数字图像几何变换

对应点为P(x,y)。那么,旋转前后点P0(x0,y0)、P(x,y)的坐标分别是:

x0 rcos

(2-11)

y rcos 0

x rcos( ) rcos cos rsin sin x0cos y0sin

(2-12)

y rsin( ) rsin cos rcos sin x0sin y0cos

写成矩阵表达式为

x cos y sin 1 0

sin cos

0 x0

y (2-13) 0 0 1 1

其逆运算为

x cos

y sin 1 0

sin cos

0 x0 y 0 0 (2-14) 1 1

利用上述方法进行图像旋转时需要注意如下两点:

(1)图像旋转之前,为了避免信息的丢失,一定要有坐标平移。

(2)图像旋转之后,会出现许多空洞点。对这些空洞点必须进行填充处理,否则画面效果不好,一般也称这种操作为插值处理。

以上所讨论的旋转是绕坐标轴原点(0,0)进行的。如果图像旋转是绕一个指定点(a,b)旋转,则先要将坐标系平移到该点,再进行旋转,然后将旋转后的图象平移回原来的坐标原点,这实际上是图像的复合变换。如将一幅图像绕点(a,b)逆时针旋转 度,首先将原点平移到(a,b),即

10 a A 01 b (2-15)

001

然后旋转

cos B sin

0

sin cos 0

0

0 (2-16) 0

然后再平移回来

10a C 01b (2-17)

001

数字图像几何变换

综上所述,变换矩阵为T C B A。

2.3图像剪取原理

有些时候我们为了减少图像所占存储空间,舍弃图像的无用部分,只保留感兴趣的部分,这就需要用到图像的剪取。在本文中,我们只讨论对原图像剪取一个形状为矩形的部分的操作。对一幅图像进行剪取操作前,首先初始化该图像,这样图像上每个点,就对应了一个二维坐标,即(x,y)。首先,我们先取二维坐标系上的一点(x0,y0),这点就作为要截取的矩形的左上角的起始坐标。然后我们定义一两个常量 x、 y,其中, x代表矩形的长素,然后舍弃掉在矩形外的点,这样,在整个坐标系上,由(x0,y0)、 y代表矩形的宽度,

(x0 x,y0)、(x0,y0 y)和(x0 x,y0 y)四个点所围成的矩形部分便被保留下来。[1]

数字图像几何变换

第3章 数字图像几何变换实现

在论文的实现过程中,主要利用了MATLAB的图像处理工具包来编写程序。MATLAB图像处理工具包是由一系列支持图像处理操作的函数组成的,所支持的图像处理操作有:几何操作、区域操作和块操作;线性滤波和滤波器设计;变换(DCT变换);图像分析和增强;二值图像操作等。

本论文所采用图像为分辨率为200 234的灰度图像,其格式为JPEG。

3.1数字图像缩放

3.1.1 imresize函数

MATLAB图像处理工具箱中的函数imresize可以用上述3种方法对图像进行插值缩放,如果不指定插值方法,则默认使用最近邻插值法。

imresize函数的语法格式为: B=imresize(A,m,method)

B=imresize(A,[mrows ncols],method) B=imresize(…,method,n) B=imresize(…,method,h)

这里参数method用于指定插值的方法,可选的值为nearest(最近邻法),bilinear(双线性插值)及bicubic(双三次插值),默认值为nearest。

B=imresize(A,m,method)返回原图A的m倍放大图像(小于1时效果是缩 小)。 B=imresize(A,[mrows ncols],method)返回一个mrows行,ncols列的图像,若 mrows和ncols定义的长宽比与原图不同,则图像会产生畸变。

在使用bilinear和bicubic方法缩小图像时,为消除引入的高频成分,imresize使用一个前端平滑滤波器,默认的滤波器尺寸为11*11。也可通过参数n指定滤波器的尺寸,即B=imresize(…,method,n)。对于nearest插值方法,imresize不使用前端滤波器,除非函数明确指定。

B=imresize(…,method,h)使用用户设计的插值核h进行插值,h可以看作一个 二维FIR滤波器。

3.1.2数字图象缩放

首先,我们用最近邻插法将图像按原比例放大1.5倍, 其运行结果如下:

数字图像几何变换

图3.1 原图像

图3.2 最近临插法按原比例放大1.5倍后的图像

图3.1为原图,图3.2为用最近临插法按原比例放大1.5倍后的图像。

下面我们分别用双线性插值法和将双三次插值法将图像按原比例放大1.5倍,并与采用最近邻插法放大的图像做比较

图3.3 采用最近邻插法所得图像

数字图像几何变换

图3.4 采用双线性插值法所得图像

图3.5 双三次插值法所得图像

图3.3为采用最近邻插法所得图像,图3.4为采用双线性插值法所得图像,图3-5为双三次插值法所得图像。

下面我们用双线性插值法将图像按原比例缩小为0.8倍。

图3.6 原图

图3.7 用双线性插值法按原比例缩小为0.8倍后的图像

图3.6为原图,图3.7为用双线性插值法按原比例缩小为0.8倍后的图像。

数字图像几何变换

3.2数字图像旋转

3.2.1 imrotate函数

在对数字图像进行旋转的时候,各像素的坐标将会发生变化,使得旋转之后不能正好落在整数坐标处,需要进行插值。在工具箱中的函数imrotate可用3种方法对图像进行插值旋转,默认的插值方法也是最近邻插值法。函数imrotate的语法格式为:

B=imrotate(A,angle,method) B=imrotate(A,angle,method,'crop')

函数imrotate对图像进行旋转,参数method用于指定插值的方法,可选的值为nearest(最近邻法),bilinear(双线形插值)及bicubic(双三次插值),默认值为 nearest。一般来说,旋转后的图像会比原图大,超出原图像的部分值为0。用户也可以指定crop参数对旋转后的图像进行剪切(取图像的中间部分),使返回的图像与原图大小相同。 3.2.2数字图象旋转

首先,我们用双线性插值法将原图像旋转45度,不裁去超出原图的部分。

图3.10 原图

图3.11 用双线性插值法旋转45度后的图像,未裁去超出原图的部分

图3.10为原图,图3.11为用双线性插值法旋转45度后的图像,未裁去超出原图的部分。

用双线性插值法将原图像旋转45度,裁去超出原图的部分,并与未裁去超出部分的做比较,

数字图像几何变换

出部分的,可见图1与原图 …… 此处隐藏:2890字,全部文档内容请下载后查看。喜欢就下载吧 ……

基于Matlab的数字图像几何变换的实现(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/121566.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)