当前位置:首页>正文

matlab怎样吧直角坐标下的图像变为极坐标下的矩阵 matlab编写函数实现直角坐标与极坐标下坐标的相互转换.麻烦大家看看我的程序

2023-06-20 16:25:23 互联网 未知

matlab怎样吧直角坐标下的图像变为极坐标下的矩阵

[THETA,RHO] = cart2pol(X,Y),直角坐标转化成极坐标。
pol2cart为极坐标转化成直角坐标。
例子:
>>  x=1:10
y=rand(1,10)
[theta,rho]=cart2pol(x,y)
polar(theta,rho)

matlab编写函数实现直角坐标与极坐标下坐标的相互转换.麻烦大家看看我的程序

这个判断没法子进行,因为计算机并不知道你的输入是什么意义。而且两种坐标系的坐标都是实数,即程序中的double类型。
要判断只有你自己注意输入参数表示的是什么了。

PS:话说matlab已经提供了这种转换函数了,cart2pol和pol2cart

如何将matlab中极坐标中的函数转化到直角坐标系

首先,matlab 本身提供了把直角坐标转化为极坐标的函数 cart2pol。调用方法为: [TH,R] = cart2pol(X,Y) TH 是极坐标的角度坐标,R 是距离坐标。 [TH,R,Z] = cart2pol(X,Y,Z) 这个函数同时支持3维直角坐标到柱坐标的转换。

matlab 将直角坐标系图像转换成极坐标系图像

A=imread(heat.jpg)   %读取图像(已经存到当前文件夹)

A1=double(A(:,:,1))
A2=double(A(:,:,2))
A3=double(A(:,:,3))  %rgb3通道转为double类型
[m n]=size(A1)
[t r]=meshgrid(linspace(-pi,pi,n),1:m) %原图坐标

M=2*m
N=2*n
[NN MM]=meshgrid((1:N)-n-0.5,(1:M)-m-0.5)
T=atan2(NN,MM)
R=sqrt(MM.^2 NN.^2)                  %变换图坐标

B1=interp2(t,r,A1,T,R,linear,0)
B2=interp2(t,r,A2,T,R,linear,0)
B3=interp2(t,r,A3,T,R,linear,0) %rgb3通道插值
B=uint8(cat(3,B1,B2,B3))        %合拼转换回uint8类型

subplot(121),imshow(A)  %画原图
subplot(122),imshow(B)  %画变换图