首页 在Matlab图像处理中极坐标与直角坐标矩阵的转换

在Matlab图像处理中极坐标与直角坐标矩阵的转换

举报
开通vip

在Matlab图像处理中极坐标与直角坐标矩阵的转换在Matlab图像处理中极坐标与直角坐标矩阵的转换 在用Matlab做图像处理的时候,经常需要使用一些基于极坐标系的公式,比如用Zernike函数作图之类。于是需要把通过极坐标系公式计算出来的数值。按照直角坐标系的坐标放入 到图像矩阵中去;或者反过来,计算图像矩阵中的每一个点,距离中心点的r和方位角,然后再带入目的公式,算出数值,放在该点。 直观的想法,是用两层for循环扫描每一个点,带入,计算,再赋值给矩阵。但是Matlab中的for循环速度慢已经众所周知,传说如果能用矩阵的运算替代for循环,则能够效率大增...

在Matlab图像处理中极坐标与直角坐标矩阵的转换
在Matlab图像处理中极坐标与直角坐标矩阵的转换 在用Matlab做图像处理的时候,经常需要使用一些基于极坐标系的公式,比如用Zernike函数作图之类。于是需要把通过极坐标系公式计算出来的数值。按照直角坐标系的坐标放入 到图像矩阵中去;或者反过来,计算图像矩阵中的每一个点,距离中心点的r和方位角,然后再带入目的公式,算出数值,放在该点。 直观的想法,是用两层for循环扫描每一个点,带入,计算,再赋值给矩阵。但是Matlab中的for循环速度慢已经众所周知,传说如果能用矩阵的运算替代for循环,则能够效率大增。不失一般性,就是要生成一个M*M的矩阵,原点在M/2, M/2,矩阵r(i,j)=i,j点到中心点的欧氏距离,矩阵angle(i,j)=角度 ny=repmat(1:M,M,1); %生成一个数值从1到M的一维矩阵,然后扩展M列。这样ny中的每一个点,都是纵坐标的 数值 nx=ny’; % 转置一下,就是横坐标的值 xpos =(nx-1)-M/2; ypos = (ny-1)-M/2; % 平移一下,是否-1无所谓,一般都是一个很大的图像,中心点在哪里和奇偶性有关系。 [angle r]=cart2pol(xpos,ypos); % 利用直角坐标系和极坐标系的互换函数,转换一下就可以了。返回angle矩阵,每个点数值都是幅角,返回的r矩阵,每个点数值都是模。 这样往Zernike函数里面就好带入了,不过记得angle和r都是矩阵了,所以乘法运算要用.代替,除法、乘方之前也要加点的。 还有,就是Matlab真要是反复计算大矩阵的乘方,也仍然很慢。比如高阶的Zernike函数,这种时候不妨事先把r矩阵各阶的乘方先算好,存下来,然后调用。免得在一个式子里重复 计算。
本文档为【在Matlab图像处理中极坐标与直角坐标矩阵的转换】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_142125
暂无简介~
格式:doc
大小:11KB
软件:Word
页数:2
分类:生活休闲
上传时间:2017-12-19
浏览量:440