数字图像处理-几何变换PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2021
• 例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);
2021
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('剪切');
2021
(a) 原始图像
(b) 平移(移位)
2021
(c) 放缩(大小调整)
(d) 旋转
几何操作可以用来达到不同的目的: 1. 校正在图像采集过程中引入的几何失真; 2. 对已有图像增加特殊的效果; 3. 作为图像配准(匹配同一场景从不同视角 或使用不同设备采集的两幅或多幅图像的共 同特征)的一部分。
2021
变换名称
除了上述表格 恒等变换
中提到的变换,
仿射矩阵T
坐标公式
例子
我们在《数字 图像处理(第
尺度变换
3版)》(冈
旋转变换
萨雷斯 著,阮 秋琦等 译)书
平移变换
中还找到了以 (垂直)偏移变换 下仿射变换,
供参考。
2021
(水平)偏移变换
2D仿射映射的6个参数唯一地由三组对应点 所确定。给定相应点变换前和变换后的坐标,可 以写出x和y的n个方程并解出n个变换系数。
subplot(222);
imshow(I1); tit20l21e('水平镜像变换')
I_flipud(1:h(1),1:h(2),1:h (3))=I(h(1):1:1,1:h(2),1:h(3)); %垂直镜像变换
I2=uint8(I_flipud);
subplot(223);
imshow(I2); title('垂直镜像变换')
DIGITAL IMAGE PROCESSING USING MATLAB
Chapter 7 : 几何操作
2021
物理科学与信息工程学院 张斌
2017.10.20
§7.1 介绍
wenku.baidu.com几何操作通过一种约束的方式重新排列 像素而改变一幅图像的几何布局。
即:不是去改变像素值,而是要改变图 像中感兴趣目标或代表特征的像素组之间的 相对位置关系。
f(x,y)→ g(x’,y’) 映射函数:(x’,y’)=T (x,y)
2021
2021
仿射变换将直线变为直线,三角形变换为三角形, 矩形变换为平行四边形。平行仍保持平行,而在直线 上的点间距离比例保持不变。
四种最常用几何操作:平移、放缩、旋转、剪切
变换
表格修改参考文献:《数字图像处理(第3版)》 冈萨雷斯 著
输入
输出
2021
在MATLAB的IPT中,有两个与仿射变换关 联的函数:maketform和imtransform。
函数maketform用来定义希望的2D空间变换, 它生成一个包括所有执行变换所需要参数的 MATLAB结构(称为TFORM)。除了仿射变换, 它还支持投影变换和自定义变换。在定义了需要 的变换后,可以使用函数imtransform将其用于 输入图像。
I_fliplr_flipud(1:h(1),1:h (2),1:h(3))=I(h(1):1:1,h(2):-1:1,1:h(3)); %对角镜像变换
I3=uint8(I_fliplr_flipud);
subplot(224);
imshow(I3); title('对角镜像变换')
运行效果:
2021
例7.1程序运行效果
2021
拓展:图像的镜像(参考文献[4])
2021
2021
程序代码:
I=imread('football.jpg'); figure;
subplot(221);imshow(I); title('原始图像') I=double(I);
h=size(I);
I_fliplr(1:h(1),1:h(2),1: h(3))=I(1:h(1),h(2):1:1,1:h(3)); %水平镜像变换 I1=uint8(I_fliplr);
2021
大多数几何操作包含两个基本的组件: 1. 映射函数:用一组空间变换方程(以及解 它们的过程)来指定;(7.2节内容) 2. 插值方法:用来计算在空间变换后的图像 中各个像素的新值。(7.3节内容)
2021
§7.2 映射和仿射变换
一个几何操作从数学上可描述为通过调整图像 像素的坐标将一幅输入图像f(x,y)变换为一幅新图 像g(x’,y’)的过程。即,原来位于坐标(x,y)处的像 素值在输出图像中将被重新安排到坐标(x’,y’)处。
§7.3 插值方法
§7.3.1 对插值的需求
对原始图像进行几何操作后,各个像素的结果值可用两 种不同的方法计算。
一. 前向映射(源到目标映射):计算输入图像所有像素
的新坐标并将像素值复制到新坐标位置。
源图像 F
目标图像 F’
2021
前向映射的问题:
1.很多由变换式算得的坐标不是整数,需要四舍五入到最 近的整数以指示在输出图像中的一个像素; 2.很多坐标可能落在界外(例如:负值); 3.由上述第一点会导致很多输出像素的坐标在计算中可能 被赋值了多次,而有些坐标没有被赋值过。 目标图像 F’
• 例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);
2021
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('剪切');
2021
(a) 原始图像
(b) 平移(移位)
2021
(c) 放缩(大小调整)
(d) 旋转
几何操作可以用来达到不同的目的: 1. 校正在图像采集过程中引入的几何失真; 2. 对已有图像增加特殊的效果; 3. 作为图像配准(匹配同一场景从不同视角 或使用不同设备采集的两幅或多幅图像的共 同特征)的一部分。
2021
变换名称
除了上述表格 恒等变换
中提到的变换,
仿射矩阵T
坐标公式
例子
我们在《数字 图像处理(第
尺度变换
3版)》(冈
旋转变换
萨雷斯 著,阮 秋琦等 译)书
平移变换
中还找到了以 (垂直)偏移变换 下仿射变换,
供参考。
2021
(水平)偏移变换
2D仿射映射的6个参数唯一地由三组对应点 所确定。给定相应点变换前和变换后的坐标,可 以写出x和y的n个方程并解出n个变换系数。
subplot(222);
imshow(I1); tit20l21e('水平镜像变换')
I_flipud(1:h(1),1:h(2),1:h (3))=I(h(1):1:1,1:h(2),1:h(3)); %垂直镜像变换
I2=uint8(I_flipud);
subplot(223);
imshow(I2); title('垂直镜像变换')
DIGITAL IMAGE PROCESSING USING MATLAB
Chapter 7 : 几何操作
2021
物理科学与信息工程学院 张斌
2017.10.20
§7.1 介绍
wenku.baidu.com几何操作通过一种约束的方式重新排列 像素而改变一幅图像的几何布局。
即:不是去改变像素值,而是要改变图 像中感兴趣目标或代表特征的像素组之间的 相对位置关系。
f(x,y)→ g(x’,y’) 映射函数:(x’,y’)=T (x,y)
2021
2021
仿射变换将直线变为直线,三角形变换为三角形, 矩形变换为平行四边形。平行仍保持平行,而在直线 上的点间距离比例保持不变。
四种最常用几何操作:平移、放缩、旋转、剪切
变换
表格修改参考文献:《数字图像处理(第3版)》 冈萨雷斯 著
输入
输出
2021
在MATLAB的IPT中,有两个与仿射变换关 联的函数:maketform和imtransform。
函数maketform用来定义希望的2D空间变换, 它生成一个包括所有执行变换所需要参数的 MATLAB结构(称为TFORM)。除了仿射变换, 它还支持投影变换和自定义变换。在定义了需要 的变换后,可以使用函数imtransform将其用于 输入图像。
I_fliplr_flipud(1:h(1),1:h (2),1:h(3))=I(h(1):1:1,h(2):-1:1,1:h(3)); %对角镜像变换
I3=uint8(I_fliplr_flipud);
subplot(224);
imshow(I3); title('对角镜像变换')
运行效果:
2021
例7.1程序运行效果
2021
拓展:图像的镜像(参考文献[4])
2021
2021
程序代码:
I=imread('football.jpg'); figure;
subplot(221);imshow(I); title('原始图像') I=double(I);
h=size(I);
I_fliplr(1:h(1),1:h(2),1: h(3))=I(1:h(1),h(2):1:1,1:h(3)); %水平镜像变换 I1=uint8(I_fliplr);
2021
大多数几何操作包含两个基本的组件: 1. 映射函数:用一组空间变换方程(以及解 它们的过程)来指定;(7.2节内容) 2. 插值方法:用来计算在空间变换后的图像 中各个像素的新值。(7.3节内容)
2021
§7.2 映射和仿射变换
一个几何操作从数学上可描述为通过调整图像 像素的坐标将一幅输入图像f(x,y)变换为一幅新图 像g(x’,y’)的过程。即,原来位于坐标(x,y)处的像 素值在输出图像中将被重新安排到坐标(x’,y’)处。
§7.3 插值方法
§7.3.1 对插值的需求
对原始图像进行几何操作后,各个像素的结果值可用两 种不同的方法计算。
一. 前向映射(源到目标映射):计算输入图像所有像素
的新坐标并将像素值复制到新坐标位置。
源图像 F
目标图像 F’
2021
前向映射的问题:
1.很多由变换式算得的坐标不是整数,需要四舍五入到最 近的整数以指示在输出图像中的一个像素; 2.很多坐标可能落在界外(例如:负值); 3.由上述第一点会导致很多输出像素的坐标在计算中可能 被赋值了多次,而有些坐标没有被赋值过。 目标图像 F’