网站大量收购独家精品文档,联系QQ:2885784924

图像位置变换.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图像位置变换重点讲义

图像位置变换 图像的位置变换是指图像的大小和形状不发生变换,只是将图像进行平移,镜像和旋转的变换等,主要用于图像目标识别的目标配准。 图像旋转变换 旋转。一般图像的旋转是以图像的中心为原点,旋转一定的角度,也就是将图像上的所有像素都旋转一个相同的角度。旋转后图像的的大小一般会改变,即可以把转出显示区域的图像截去,或者扩大图像范围来显示所有的图像。图像的旋转变换也可以用矩阵变换来表示。设点逆时针旋转角后的对应点为。那么,旋转前后点、的坐标分别是: 写成矩阵表达式为 其逆运算为 利用上述方法进行图像旋转时需要注意如下两点: (1)图像旋转之前,为了避免信息的丢失,一定要有坐标平移。 (2)图像旋转之后,会出现许多空洞点。对这些空洞点必须进行填充处理,否则画面效果不好,一般也称这种操作为插值处理。 以上所讨论的旋转是绕坐标轴原点0,0)进行的。如果图像旋转是绕一个指定点a,b)旋转,则先要将坐标系平移到该点,再进行旋转,然后将旋转后的图象平移回原来的坐标原点,这实际上是图像的复合变换。如将一幅图像绕点a,b)逆时针旋转度,首先将原点平移到a,b),即 然后旋转 然后再平移回来 综上所述,变换矩阵为。 x=x0+Δx y=y0+Δy 利用齐次坐标系,变换前后图像上的点P0(x0,y0)和P(x,y)之间的关系可以用如下的矩阵变换表示为: =× 利用坐标变换原理我们进行编程。首先要设计一个GUI界面方便我们进行图像处理。 首先读入图片,并将其显示在第一个坐标轴上,处理后的图像显示在第二个坐标轴上,形成对比。Matlab中读入函数imread,打开对话框函数为uigetfile。在打开菜单的Callback函数下添加函数激活打开命令。 function dakai_Callback(hObject, eventdata, handles) [filename,pathname]=uigetfile(... {*.bmp;*.png;*.jpeg;*.jpg,Image Files(*.bmp,*.jpg,*.png,*.jpeg);... *.*, All Files(*.*)},... Pick an image); if isequal(filename,0)||isequal(pathname,0) return; end fpath=[pathname filename]; img_1=imread(fpath); imshow(img_1); title(); setappdata(handles.figure_by_me,img_1,img_1); 获得图片后,接下来就是对其进行处理,以实现图像几何变换菜单下的平移变换。在平移变换的Callback函数下添加如下代码: function pingyibianhuan_Callback(hObject, eventdata, handles) % hObject handle to pingyibianhuan (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) prompt={X(0-166),Y(0-166)}; title=pingyibianhuan defaults={0,0}; xy_cells=str2num(char(inputdlg(prompt,title,1,defaults))); if isempty(xy_cells) msgbox(为您执行平移操作,提示,help); else x=xy_cells(1);y=xy_cells(2); axes(handles.axes_2); img_1=getappdata(handles.figure_by_me,img_1); img_2=double(img_1); img_2_M=zeros(size(img_2)); H=size(img_2); move_x=x; move_y=y; if(size(img_2,3)~=1) img_2_M(round(move_x)+1:round(H(1)),r

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档