Matlab:从笛卡尔提取极性表示形式的图像

马可

我正在尝试计算一种将笛卡尔坐标中的图像转换为极坐标表示的有效方法。我知道有些功能(例如ImToPolar)正在执行此操作,并且效果很好,但是对于大图像来说需要花费大量时间,尤其是当它们需要来回处理时。

这是我的输入图片:

输入图像

然后我使用以0为中心的笛卡尔网格和函数生成极坐标网格cart2pol()最后,我使用绘制图像mesh(theta, r, Input)

这是我得到的:

输出图像

它正是我需要的图像,并且与之相同ImToPolar甚至更好。

由于MATLAB知道如何计算它,所以有人知道如何从此输出中提取极性表示形式的矩阵吗?还是在MATLAB上计算极坐标变换(和逆变换)的快速方法(如快速傅立叶变换)?

rahnema1

pol2cartmeshgridinterp2足以创建结果:

I=imread('http://i.stack.imgur.com/HYSyb.png');
[r, c,~] = size(I);
%rgb image can be converted to indexed image to prevent excessive copmutation for each color
[idx, mp] = rgb2ind(I,32);
% add offset to image coordinates
x = (1:c)-(c/2);
y = (1:r)-(r/2);
% create distination coordinates in polar form so value of image can be interpolated in those coordinates
% angle ranges from 0 to 2 * pi and radius assumed that ranges from 0 to 400
% linspace(0,2*pi, 200) leads to a stretched image try it!
[xp yp] = meshgrid(linspace(0,2*pi), linspace(0,400));
%translate coordinate from polar to image coordinates
[xx , yy] = pol2cart(xp,yp);
% interpolate pixel values for unknwon coordinates
out = interp2(x, y, idx, xx, yy);
% save the result to a file
imwrite(out, mp, 'result.png')

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将笛卡尔图像转换为极性,外观差异

来自分类Dev

如何提取svg图像的笛卡尔坐标(x,y)?

来自分类Dev

以极性形式打印复数(Matlab)

来自分类Dev

行索引的笛卡尔积在Matlab中

来自分类Dev

如何提取笛卡尔坐标半径内的线

来自分类Dev

通过PyFITS / AstroPy在FITS图像中的笛卡尔投影问题

来自分类Dev

从二进制到笛卡尔的图像重复

来自分类Dev

将图像从笛卡尔坐标转换为极坐标

来自分类Dev

将笛卡尔坐标转换为极坐标-Matlab

来自分类Dev

笛卡尔积的倒数

来自分类Dev

获取笛卡尔积?

来自分类Dev

列表的笛卡尔半角

来自分类Dev

火花笛卡尔积

来自分类Dev

联接导致笛卡尔

来自分类Dev

笛卡尔积的倒数

来自分类Dev

MatOfPoint笛卡尔坐标

来自分类Dev

生成笛卡尔积

来自分类Dev

字典的笛卡尔积

来自分类Dev

在PyTorch中提取图像的编码表示形式?

来自分类Dev

如何将参数方程式转换为笛卡尔形式

来自分类Dev

如何以笛卡尔坐标形式计算内水垫中心点?

来自分类Dev

笛卡尔幂(具有任意次数的笛卡尔乘积)

来自分类Dev

使用imageR将图像从笛卡尔坐标映射到极坐标

来自分类Dev

天文RA和DEC到笛卡尔坐标,然后在2D图像FOV中绘图

来自分类Dev

如何将笛卡尔坐标转换为 360 图像上热点的球面坐标

来自分类Dev

在MATLAB中的两个笛卡尔点之间创建螺旋

来自分类Dev

在MATLAB中的两个笛卡尔点之间创建螺旋

来自分类Dev

Matlab中的hsv图像表示形式的范围是什么?

来自分类Dev

2数组的笛卡尔积