图像的几何变换

包含相同内容的两幅图像可能由于成像角度、透视关系乃至镜头自身原因所造成的几何失
真而呈现出截然不同的外观,这就给观测者或是图像识别程序带来了困扰。通过适当的几何变
换可以最大程度地消除这些几何失真所产生的负面影响,有利于我们在后续的处理和识别工作
中将注意力集中子图像内容本身,更确切地说是图像中的对象,而不是该对象的角度和位置等。
因此, 几何变换常常作为其他图像处理应用的预处理步骤, 是图像归一化的核心工作之一。

本文主要包括以下内容

  • 图像的各种几何变换, 如平移、镜像和旋转等
  • 插值算法
  • 图像配准
  • 本章的典型案例分析
    • 基于直方图均衡化的图像灰度归一化
    • 汽车牌照的投影失真校正

解决几何变换的一般思路

图像几何变换又称为图像空间变换, 它将一幅图像中的坐标位置映射到另一幅图像中的
新坐标位置. 我们学习几何变换的关键就是要确定这种空间映射关系, 以及映射过程中的变
换参数。
几何变换不改变图像的像素值, 只是在图像平面上进行像素的重新安排。一个几何变换
需要两部分运算:首先是空问变换所需的运算, 如平移、旋转和镜像等, 需要用它来表示输
出图像与输入图像之间的〈像素〉映射关系:此外, 还需要使用灰度插值算法, 因为按照这
种变换关系进行计算, 输出图像的像素可能被映射到输入图像的非整数坐标上。


之所以要逆变换是因为:

图像平移

图像平移就是将图像中所有的点按照指定的平移量水平或者垂直移动。

图像平移的变换公式

对于原图中被移出图像显示区域的点通常也有两种处理方法:直接丢弃或者通过加目标图像的尺寸〈将新生成的图像宽度增加Tx,高度增加Ty〉的方法使新图像中能够包含这些点,在稍后给出的程序实现中,我们来用了第一种处理方法。.

init = imread('lena.bmp'); % 读取图像
[R, C] = size(init); % 获取图像大小
res = zeros(R, C); % 构造结果矩阵。每个像素点默认初始化为0(黑色)
delX = 50; % 平移量X
delY = 50; % 平移量Y
tras = [1 0 delX; 0 1 delY; 0 0 1]; % 平移的变换矩阵 for i = 1 : Rfor j = 1 : Ctemp = [i; j; 1];temp = tras * temp; % 矩阵乘法x = temp(1, 1);y = temp(2, 1);% 变换后的位置判断是否越界if (x <= R) & (y <= C) & (x >= 1) & (y >= 1)res(x, y) = init(i, j);endend
end;figure;
subplot(1,2,1);
imshow(uint8(init)); title('原图像'); 
subplot(1,2,2);
imshow(uint8(res)); % 显示图像
title('平移后');

图像镜像

镜像变换又分为水平镜像和坚直镜像。水平镜像即将图像左半部分和右半部分以图像坚直中轴线为中心轴进行对换;而竖直镜像则是将图像上半部分和下半部分以图像水平中轴线为中心轴进行对换.

图像镜像的交换公式

matlab实现
imtransform函数用于完成一般的二维空间变换,形式如下:
B=imtransform(A,TFrom,method)

A=imread('lena.bmp');
[height,width,dim]=size(A);
tform= maketform('affine',[-1 0 0;0 1 0;width 0 1]);B = imtransform(A,tform,'nearest');
tform2=maketform('affine',[1 0 0;0 -1 0;0 height 1]);
C = imtransform(A,tform2,'nearest');subplot(1,3,1),imshow(A);
title('原图像');
subplot(1,3,2),imshow(B);
title('水平镜像');
subplot(1,3,3),imshow(C);
title('竖直镜像');

图像转置

图像转置是指将图像像素的x坐标和y坐标互换,图像的大小会随之改变:高度和宽度将互换。

图像转置的交换公式

matlab实现

A = imread('lena.bmp');
tform = maketform('affine',[0 1 0;1 0 0;0 0 1]);
B = imtransform(A,tform,'nearest');subplot(1,2,1),imshow(A);
title('原图像');   
subplot(1,2,2),imshow(B);
title('图像转置');

图像缩放

图像缩放是指图像大小按照指定的比率放大或者缩小

图像缩放的变换公式

直接根据缩放公式计算得到的目标图像中,某些映射源坐标可能不是整数,从而找不到
对应的像素位置。例如,当Sx=Sy=2 时,图像放大2倍,放大图像中的像素(0, 1)对应于
原图中的像素(0, 0.5),这不是整数坐标位置,自然也就无法提取其灰度值。因此我们必须
进行某种近似处理,这里介绍一种简单的策略即直接将它最邻近的整数坐标位置(0,0)或者
(0,1)处的像素灰度值赋给它,这就是所谓的最近邻插值。当然还可以通过4.7节将介绍的其
他插值算法来近似处理.

matlab实现
缩放变换仍然可借助前面几节中使用的imtransform函数来实现。此外,Matlab还提供
专门的图像缩放函数imresize,具体调用形式为:

B = imresize(A,Scale,method);

参数说明:
a为缩放的原始图像
Scale为统一缩放比例
method用于指定插值方法,其合法取值同imtransform

A = imread('lena.bmp');
B = imresize(A,1.2,'nearest');figure,imshow(A);title('原图像');   
figure,imshow(B);title('图像缩放');

图像旋转

旋转一般是指将图像围绕某一指定点旋转一定的角度。旋转通常也会改变图像的大小,
和4.2 节中图像平移的处理一样, 可以把转出显示区域的图像截去, 也可以改变输出图像的
大小以扩展显示范围.

以原点为中心的图像旋转

以任意点为中心的图像旋转
在4.6.1小节中给出的旋转示例是以坐标原点为中心进行的,那么如何围绕任意的指定
点来旋转呢?将平移和旋转操作相结合即可,即先进行坐标系平移,再以新的坐标原点为中
心旋转,然后将新原点平移回原坐标系的原点。这一过程可归纳为以下3个步骤:

至此,我们已经实现了上述3个步骤中的第1步和第3步,再加上第2步的旋转变换就
得到了围绕图像中心点旋转的最终变换矩阵,该矩阵实际上是3个变换步骤中分别用到的3
个变换矩阵的级联。

matlab实现
图像旋转变换的效果受具体插值方法的影响较为明显,本节给出的实现均采用最近邻插 值,在 4.7 节中将给出来用不同的插值算法时图像旋转变换的效果比较。

可通过4.6.2 小节中学习的方法设置适当的变换结构TFORM,从而调用imtansform来
实现以任意点为中心的图像旋转。此外, Matlab 还专门提供了围绕图像中心的旋转变换函数
imrotate ,其调用方式如下:
B=imrotate(A,angle,method,’crop’)
参数说明:

  • A是要旋转的图像.
    • angle 为旋转角度,单位为度,如果为其指定一个正值,则imrotate 函数接逆时针方
    向旋转圈像.
    · 可选参数method为imrotate 函数指定插佳方法.
    • ‘crop'选项会裁剪旋转后增大的图像,使得到的圈像和原图大小一致.
A = imread('lena.bmp');
B = imrotate(A,30,'nearest','crop');
subplot(1,2,1),imshow(A);
title('原图像');
subplot(1,2,2),imshow(B);
title('逆时针旋转30度');

插值算法

实现几何运算时, 有两种方法。第一种称为向前映射法, 其原理是将输入图像的灰度逐
个像索地转移到输出图像中,即从原图像坐标计算出目标图像坐标: g(x_1,y_1) = f(a(x_o,y_o}, b(x_o,  
y_o))
。前面的平移、镜像等操作就可以采用这种方法。

另外一种称为向后映射法, 它是向前映射变换的逆操作, 即输出像素逐个映射回输入图
像中。如果一个输出像素映射到的不是输入图像来样栅格的整数坐标处的像素点, 则其灰度
值就需要基于整数坐标的灰度值进行推断, 这就是插值。由于向后映射法是逐个像素产生输
出图像, 不会产生计算浪费问题, 所以在缩放、旋转等操作中多采用这种方法, 本书采用的
也全部为向后映射法。

最近邻插值

最近邻插值可表示为:
f(x,y) = g(round(x), round (y) );
我们在之前的各种变换Visual C++实现中均采用了最近邻插值的算法,因为它计算简单,
而且在很多情况下的输出效果也可以接受。然而, 最近邻插值法会在图像中产生人为加工的
痕迹, 详见例4.1.

双线性插值

双线性插值又称为一阶插值,是线性插值扩展到二维的一种应用。它可以通过一系列的一阶线性插值得到.

输出像素的值为输入图像中距离它最近的2×2邻域内来样点像素灰度值的加权平均。
设己知单位正方形的顶点坐标分别为f(O,0)、f(1 ,O)、f(O,1)、f(1,1), 如图4.14所示, 我们
要通过双线性插值得到正方形内任意点f(x,y)的值。

上面的推导是在单位正方形的前提下进行的, 稍加变换就可以推广到一般情况中.
线性插值的假设是原图的灰度在两个像素之问是统性变化的, 显然这是一种比较合理的
假设.因此在一般情况下,双线住插值都能取得不错的效果。更精确的方法是果用曲线插值,
即认为像素’之间的灰度变化规律符合某种曲线方程, 当然这种处理的计算量是很大的。

高阶插值

在一些几何运算中, 双线性插值的平滑作用会使图像的细节退化, 而其斜率的不连续性
则会导致变换产生不希望的结果. 这些都可以通过高阶插值得到弥补, 高阶插值常用卷积来
实现。输出像素的值为输入图像中距离它最近的4×4领域内采样点像素值的加权平均值。
下面以三次插值为例, 它使用了如下的三次多项式来逼近理论上的最佳插值函数
sin(x)/x,如图4.15 所示.

插值方法比较
下面的程序对两幅不同的图像进行图像旋转, 分别采用了最近邻、双线性和三次插值,
观察它们的不同效果.

A = imread('rectangle.bmp');
B = imrotate(A,30,'nearest');
C = imrotate(A,30,'bilinear');
D = imrotate(A,30,'bicubic');subplot(2,2,1),imshow(A);
title('原图像');
subplot(2,2,2),imshow(B);
title('最近邻插值');
subplot(2,2,3),imshow(C);
title('双线性插值');
subplot(2,2,4),imshow(D);
title('双三次插值');

从图4.17可以看出最近邻的插值方法得到的结果还是可以接受的,但当图像中包含的像素之间灰度级有明显变化时(见图4.16),从结果图像的锯齿形边可以看出三种插值方法的效果依次递减,最近插值的效果明显不如另外两个好,锯齿比较多,而双三次插值得出的图像较好地保持了图像的细节。这是因为参与计算输出点的像章值的拟合点个数不同,个数越多效果越精确,当然参与计算的像素个数会影响计算的复杂度:实验结果也清楚地表明双三 次插值法花费的时间比另外两种的要长一些。最近邻和线性插值的速度在此次图像处理中几乎分不出来。所以,在讨算时间与质量之间有一个折中问题。

图像配准

什么是图像配准
所谓图像配准就是将同一场景的两幅或多幅图像进行对准。如航空照片的配准, 以及在
很多人脸自动分析系统中的人脸归一化, 即要使各张照片中的人脸具有近似的大小, 尽量处
于相同的位置。
一般来说, 我们以基准图像为参照, 并通过一些基准点(fudical points)找到适当的空
间变换关系s和r,对输入图像进行相应的几何变换,从而实现它与基准图像在这些基准点位
置上的对齐。
下面就以人脸图像的校准为例, 介绍如何在Matlab中实现图像配准。

Iin = imread('lena2.bmp');
Ibase = imread('lena.bmp');figure;
subplot(1,2,1),imshow(Iin);
subplot(1,2,2),imshow(Ibase);
cpselect(Iin,Ibase);tform = cp2tform(movingPoints,fixedPoints,'affine');

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493828.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

交叉科学不仅不是边缘学科,反而应是科研主流

来源&#xff1a;科学网摘要&#xff1a;“信息时代将走过数字化、网络化、智能化等几个阶段&#xff0c;从现在分界将信息时代和智能时代划分成两个时代有点牵强。”“信息时代将走过数字化、网络化、智能化等几个阶段&#xff0c;从现在分界将信息时代和智能时代划分成两个时…

空间域图像增强

图像增强是数字图像处理相对简单却最具艺术性的领域之一&#xff0c;增强的目的是消除噪声&#xff0c; 显现那些被模糊了的细节或简单突出一幅图像中我们感兴趣的特征。一个简单例子是增强图 像的对比度&#xff0c; 使其看起来更加一目了然。增强是图像处理中非常主观的领域…

wordpress增删改查

wordpress 焦点图插件-增删改查操作 2012-02-01 15:39:14分类&#xff1a; 系统运维 该插件在wordpress-3.3.1-zh_CN版本下开发&#xff0c;主要用于在后台管理首页焦点图&#xff08;图片轮播&#xff09;。存放焦点图信息的表 focusphoto(id,photourl,linkto,title,descripti…

AI改变现代商业的25种方式

来源&#xff1a;财富编译 | Geek AI、微胖、茜茜现在&#xff0c;是时候真正了解 AI 未来。关于人工智能引起的焦虑 - 就业问题是其主要来源 - 现实是&#xff0c;没有人知道未来会如何。原因是&#xff0c;我们永远无法预见人类的聪明才智&#xff0c;以及全世界数百万企业家…

中值滤波与图像锐化

本文主要包括以下内容 中值滤波及其改进算法图像锐化&#xff0c; 包括梯度算子、拉普拉斯算子、高提升滤波和高斯-拉普拉斯变换本章的典型囊例分析 对椒盐噪声的平滑效果比较Laplacian与LoG算子的锐化效果比较 中值滤波 中值滤波本质上是一种统计排序滤波器&#xff0e; …

5G手机“狂奔而来”,业内预计明年二季度全面上市

来源&#xff1a; 全天候科技作者&#xff1a;张超&#xff0c;编辑&#xff1a;舒虹随着科技快速发展、网络不断升级&#xff0c;智能手机的“5G时代”正狂奔而来。10月25日&#xff0c;台湾电子时报援引行业消息人士称&#xff0c;芯片、手机厂商等正在加快进度&#xff0c;预…

傅立叶变换学习

空间域和频率域为我们提供了不同的视角&#xff0e; 在空域中&#xff0e; 函数的自变量&#xff08;x, y&#xff09;被视为二维空间中的一点&#xff0c; 数字图像J(x, y&#xff09;即为一个定义在二维空间中的矩形区域上的离散函数&#xff1a;换一个角度&#xff0c; 如果…

盘点互联网大厂AI战略变迁,开发者将怎样pick前进路线?

来源&#xff1a;AI科技大本营随着各大企业相继试水“全面 AI”&#xff0c;人工智能在技术落地层面也开始持续深入&#xff0c;泛人工智能时代正在逼近。越来越多的发展趋势表明&#xff0c;未来的人工智能将逐步迈入广泛普及阶段&#xff0c;继而深入影响人类日常的生产生活方…

人脸识别最全知识图谱—清华大学出品

来源&#xff1a;智东西摘要&#xff1a;全面解析人脸识别技术原理、领域人才情况、技术应用领域和发展趋势。自20世纪下半叶&#xff0c;计算机视觉技术逐渐地发展壮大。同时&#xff0c;伴随着数字图像相关的软硬件技术在人们生活中的广泛使用&#xff0c;数字图像已经成为当…

频率域波图像增强

本文主要包括以下内容 频率域图像增强高通滤波器和低通滤波器本章的典型案例分析 利用频域滤波消除周期噪声 频域滤波基础 频域滤波与空域滤波的关系 傅立叶变换可以将图像从空域变换到频域&#xff0c;而傅立叶反变换则可以将图像的频谱逆变换为空域图像&#xff0c;即人…

挑战者联盟!谁会成为最赚钱的人工智能公司

来源&#xff1a; 网易智能摘要&#xff1a;每一波重大科技浪潮都会产生为数不多的价值几百亿乃至数千亿美元的极具价值的公司&#xff0c;而当一项重大的新技术出现时&#xff0c;通常都很难预测谁将成为最大的赢家。纵观科技行业的历史&#xff0c;大多数科技浪潮的价值和收入…

彩色图像处理

彩色基础 什么是彩色 彩色是物体的一种属性&#xff0c;就像纹理、形状、重量一样&#xff0e; 通常&#xff0c; 它依赖于3个方面的因素&#xff1a; 光源一一照射光的谱性质或谱能量分布&#xff0e;物体&#xff0d;一被照射物体的反射性质&#xff0e;成像接收器&#…

IBM Watson失败的4大原因

来源&#xff1a;大数医达被称为“认知计算”革命性代表的IBM Watson从诞生那一刻起&#xff0c;就一直在被质疑中发展&#xff0c;在发展中被质疑。近日&#xff0c;坊间传言IBM Watson健康部门将裁员50%-70%&#xff0c;甚至也有传言说&#xff0c;整个健康部门将被关闭&…

[Android源码]Android源码之高仿飞鸽传书WIFI热点搜索与创建(一)

&#xff08;本文详情来源&#xff1a;android源码 http://www.eoeandroid.com/thread-296427-1-1.html 转载请注明出处&#xff01;&#xff09; [Android源码分享]飞鸽传书的Android客户端相信大部分同学都看过并且用过吧&#xff1f;我这里就小小的还原一下一个小模块&am…

谷歌智慧城市之困

来源&#xff1a;网易智能 摘要&#xff1a;谷歌母公司Alphabet旗下创新城市部门Sidewalk Labs目前在信息隐私问题上陷入了困境。他们失去了数据信托首席专家和顾问安卡瓦吉安&#xff08;Ann Cavoukian&#xff09;&#xff0c;该机构将批准和管理多伦多概念智能社区Quayside内…

形态学图像处理(二)

本文主要包括以下内容 二值形态学的经典应用&#xff0c; 细化和像素化&#xff0c; 以及凸壳灰度图像的形态学运算&#xff0c; 包括灰度腐蚀、灰度膨胀、灰度开和灰度闭本章的典型案例分析 在人脸局部图像中定位嘴的中心显微镜下图像的细菌计数利用顶帽变换&#xff08;to…

最全的大数据解决方案(多图)

来源&#xff1a;网络大数据未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体系&#xff0c;开展世界人工智能智商评测&#xff1b;开展互联网&…

图像分割

图像分割是指将图像中具有特殊意义的不同区域划分开来&#xff0c; 这些区域互不相交&#xff0c;每个区域满足灰度、纹理、彩色等特征的某种相似性准则。图像分割是图像分析过程中最重要的步骤之一&#xff0c;分割出的区域可以作为后续特征提取的目标对象。 本文主要包括以下…

重磅:IBM 340亿美元收购红帽软件,开源生态或将迎来重大变化

来源&#xff1a;人工智能和大数据北京时间10月29日上午消息&#xff0c;据报道&#xff0c;IBM周日宣布&#xff0c;将以约340亿美元价格收购开源软件和技术主要供应商红帽公司&#xff08;Red Hat&#xff09;。根据两家公司的联合声明&#xff0c;IBM将支付现金&#xff0c;…

阈值分割与区域分割

本文主要包括以下内容 阈值分割技术基于区域的图像分割技术本章的典型案例 基于LoG和Canny算子的精确边缘检测基于Hough变换的直线检测图像的四叉树分解 阈值分割 我们曾在3.5节学习过灰度阈值变换的相关知识&#xff0c; 利用灰度阈值变换分割图像就称为阈值分割&#xf…