基于Matlab的数字图像几何变换的实现(2)
图像在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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [求职职场]加法运算定律的运用练习题
- [求职职场]大型石油化工工业过程节能新技术
- [求职职场]2015-2020年中国箱纸板行业分析与投资
- [求职职场]NADEX-IWC5A点焊机故障代码
- [求职职场]英语阅读 非常有用
- [求职职场]鲁卫疾控发〔2012〕2号(联合,印发山东
- [求职职场]2014年莆田公务员行测技巧:数字推理的
- [求职职场]基于最近发展区理论的高中数学课堂有效
- [求职职场]与贸易有关的知识产权协议
- [求职职场]【王风范】微演说·职场演说三
- [求职职场]新时代国珍健康大课堂
- [求职职场]群论期末考试复习题
- [求职职场]施工现场消防安全专项施工方案(范本)-
- [求职职场]初中物理光学知识点归纳完美版
- [求职职场]毕业设计总结与体会范文
- [求职职场]江南大学2018年上半年展示设计第1阶段
- [求职职场]景尚乡民兵参战支前保障方案
- [求职职场]【优质】2019年工会职工之家建设工作总
- [求职职场]数据库技术与应用—SQL Server 2008(第
- [求职职场]汽车变速箱构造与工作原理
- 首钢工业区工业遗产资源保护与再利用研
- 第4课 《大学》节选
- 2016程序文件——检验检测结果发布程序
- 2011年高考试题文言文阅读全解释__2011
- 化学是一门基础的自然科学
- 海外做市商制度的借鉴意义
- 外国建筑史复习资料(
- 七年级下思想品德期末综合测试(二)
- 思政课部2013年上学期教学工作总结
- 电大国际公法任务3 0004
- 《圆的认识》教学设计
- 中国轨道交通牵引变流器行业市场发展调
- 中泰证券#定期报告:坚守时代硬科技和
- 浅论企业财务管理与企业经营投资风险的
- 大功率半导体激光器光纤耦合技术调研报
- 中国传统家具的现状与发展探讨
- Broadcom数字电视芯片助海尔扩展高清电
- 新HSK4词汇练习 超全(五)
- 2013届高考数学单元考点复习12
- 雨霖铃精品课件




