数字图像处理-几何变换
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
§7.2 映射和仿射变换
一个几何操作从数学上可描述为通过调整图像 像素的坐标将一幅输入图像f(x,y)变换为一幅新图 像g(x’,y’)的过程。即,原来位于坐标(x,y)处的像 素值在输出图像中将被重新安排到坐标(x’,y’)处。
f(x,y)→ g(x’,y’) 映射函数:(x’,y’)=T (x,y)
DIGITAL IMAGE PROCESSING USING MATLAB
Chapter 7 : 几何操作
物理科学与信息工程学院 张斌
2017.10.20
§7.1 介绍
几何操作通过一种约束的方式重新排列 像素而改变一幅图像的几何布局。
即:不是去改变像素值,而是要改变图 像中感兴趣目标或代表特征的像素组之间的 相对位置关系。
表格修改参考文献:《数字图像处理(第3版)》 冈萨雷斯 著
变换名称
除了上述表格 恒等变换
中提到的变换,
仿射矩阵T
坐标公式
例子
我们在《数字 图像处理(第
尺度变换
3版)》(冈
旋转变换
萨雷斯 著,阮 秋琦等 译)书
平移变换
中还找到了以 (垂直)偏移变换 下仿射变换,
百度文库
供参考。
(水平)偏移变换
2D仿射映射的6个参数唯一地由三组对应点 所确定。给定相应点变换前和变换后的坐标,可 以写出x和y的n个方程并解出n个变换系数。
(a) 原始图像
(b) 平移(移位)
(c) 放缩(大小调整)
(d) 旋转
几何操作可以用来达到不同的目的: 1. 校正在图像采集过程中引入的几何失真; 2. 对已有图像增加特殊的效果; 3. 作为图像配准(匹配同一场景从不同视角 或使用不同设备采集的两幅或多幅图像的共 同特征)的一部分。
大多数几何操作包含两个基本的组件: 1. 映射函数:用一组空间变换方程(以及解 它们的过程)来指定;(7.2节内容) 2. 插值方法:用来计算在空间变换后的图像 中各个像素的新值。(7.3节内容)
������′ ������������ ������������ ������������ ������ 或表示为矩阵: ������′ = ������������ ������������ ������������ ������
������ ������ ������ ������ ������
������′
������′′ = ������′ + ������ + ������
= =
������ ������
+
������
−
������
垂直镜像坐标计算公式为:
ቊ
������′= −������ ������′= ������
• 例7.1程序代码
I= imread('cameraman.tif'); % Rotation Ta = maketform('affine',[cosd( 30) -sind(30) 0; sind(30) cosd(30) 0; 0 0 1]); Ia = imtransform(I,Ta); %Scaling Tb = maketform('affine’,[0.4 0 0; 0 0.8 0; 0 0 1]'); Ib = imtransform(I,Tb); % Translation xform = [1 0 25; 0 1 15; 0 0 1]'; Tc = maketform('affine',xform);
Ic = imtransform(I,Tc, 'XData',[1 (size(I,2)+xform(3,1))], 'YData', ... [1 (size(I,1)+xform(3,2))],'Fil lValues', 128 ); % Shearing Td = maketform('affine',[1 3 0; 2 1 0; 0 0 1]'); Id = imtransform(I,Td); figure subplot(2,2,1),imshow(Ia); title('旋转'); subplot(2,2,2),imshow(Ib); title('放缩'); subplot(2,2,3),imshow(Ic); title('平移'); subplot(2,2,4),imshow(Id); title('剪切');
例7.1程序运行效果
拓展:图像的镜像(参考文献[4])
镜像分为水平镜像和垂直镜像,特点分别为左右颠倒。 水平镜像计算公式为:
ቊ������������′′
= =
������ −������
因为图像的矩阵坐标不能为负,因此取完镜像后要进行坐 标平移。修正后的水平镜像计算公式为:
ቊ������′′
=
仿射变换将直线变为直线,三角形变换为三角形, 矩形变换为平行四边形。平行仍保持平行,而在直线 上的点间距离比例保持不变。
四种最常用几何操作:平移、放缩、旋转、剪切
变换
用Δx, Δy平移 用[������������, ������������]放缩 用角度θ逆时针旋转 用[������������������, ������������������]剪切
映射函数可被指定为两个分离的函数:
������′ = ������������(������, ������ሻ ������′ = ������������(������, ������൯
当������������和������������是x和y的线性组合时,称之为仿射变换,或 称仿射映射。
������′ = ������������������ + ������������������ + ������������ ������′ = ������������������ + ������������������ + ������������
输入
输出
在MATLAB的IPT中,有两个与仿射变换关 联的函数:maketform和imtransform。
函数maketform用来定义希望的2D空间变换, 它生成一个包括所有执行变换所需要参数的 MATLAB结构(称为TFORM)。除了仿射变换, 它还支持投影变换和自定义变换。在定义了需要 的变换后,可以使用函数imtransform将其用于 输入图像。