在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;

在Matlab图像处理中极坐标与直角坐标矩阵的转换 matlab极坐标三维图
ypos = (ny-1)-M/2;

% 平移一下,是否-1无所谓,一般都是一个很大的图像,中心点在哪里和奇偶性有关系。

[angle r]=cart2pol(xpos,ypos);

% 利用直角坐标系和极坐标系的互换函数,转换一下就可以了。返回angle矩阵,每个点数值都是幅角,返回的r矩阵,每个点数值都是模。

这样往Zernike函数里面就好带入了,不过记得angle和r都是矩阵了,所以乘法运算要用.代替,除法、乘方之前也要加点的。

还有,就是Matlab真要是反复计算大矩阵的乘方,也仍然很慢。比如高阶的Zernike函数,这种时候不妨事先把r矩阵各阶的乘方先算好,存下来,然后调用。免得在一个式子里重复计算。

  

爱华网本文地址 » http://www.aihuau.com/a/25101012/131532.html

更多阅读

硬盘GPT分区与MBR分区的转换 将mbr转换为gpt命令

硬盘GPT分区与MBR分区的转换——简介如何将gpt分区更改成mbr分区?相信很多网友都在网上反馈:”因为笔记本电脑硬盘分区表是GPT而导致大家无法安装引导系统。需要转换为MBR分区还能顺利安装。“问题是,分区工具无法转换MBR,这里小编

图像处理中的卷积与模板 图像处理 卷积

图像处理中的卷积与模板2011-04-25 11:16转载自 deepthink_2010最终编辑 shuting_guo1.使用模板处理图像相关概念:模板:矩阵方块,其数学含义是一种卷积运算。卷积运算:可看作是加权求和的过程,使用到的图像区域中的每个像素分别与卷积核(

DSP在图像处理中的应用与发展 dsp在图像处理

前言花了一天时间看了15篇文章终于搞出这么篇综述来,完全是为了3个学分,除了摘要和结论其他的基本上不是我写的.我大概了解了一下,其他人都只找了一篇文章就开始写了,真是佩服他们的勇气和胆量.我还是对得起这3个学分的.DSP在图像

声明:《在Matlab图像处理中极坐标与直角坐标矩阵的转换 matlab极坐标三维图》为网友漠漠轻桥分享!如侵犯到您的合法权益请联系我们删除