编辑:我决定把这个问题分成两部分,因为它实际上是两个问题:1。如何在MATLAB中绘制极曲面图(本问题)和2。如何将拟合极坐标数据点放入粗略(非极坐标)矩阵
我有一个包含某些灰色值(介于0和1之间的值)的矩阵。这些点存储在一个矩形矩阵中,但实际上数据点是通过旋转探测器获得的。这意味着我实际上有极坐标(我知道起始矩阵中每个像素的极坐标)。
我想制作一个数据点的极线图。我有下面的例子。
因为MATLAB将图像存储为矩阵,所以我得到的极坐标与矩阵的“箱子”并不完全匹配。因此,我们目前使用插值算法将极坐标放入方阵中。然而,这是非常缓慢的。我认为有两种方法可以解决这个问题:
一些基本信息:
输入矩阵大小:512×960
电流输出矩阵大小:1024×1024
这个问题得到了解决(除了一个小缺陷),部分原因是K.M.Shihab Uddin为我指明了正确的方向。不幸的是,使用surf意味着在图形中连续绘制图像,这也很慢。
所以我在单独的矩阵中有X和Y值,在每个X和Y组合中有灰度值(在称为C的矩阵中)。
我发现pcolor只是从顶部用一个视点冲浪。因此,我使用以下代码来绘制图表。
surf(X,Y,C*255)
view([0,0,500])
然而,这给了我一个完全黑色的图像。这是因为surf(和pColor)在我的情况下创建了960条径向网格线。解决方案是使用:
surf(X,Y,img2*255,'EdgeColor','none')
view([0,0,500])
现在我有了一个近乎完美的形象,就像以前一样。在我的960条径向线中,只有一条是白色的,所以我仍然需要解决这个问题。然而,我觉得这是功能surf的一个技术细节,回答这一部分不属于这个问题。
生成的图像
我认为matlab中有内置的极坐标图函数。
Z = [2+3i 2 -1+4i 3-4i 5+2i -4-2i -2+3i -2 -3i 3i-2i];
polarplot(Z,'*')
此命令打印:打印极轴
请参阅此链接:
http://www.mathworks.com/help/matlab/ref/polarplot.html
要以灰度打印,请使用“pcolor”并将colormap指定为“gray”
www.mathworks。com/help/matlab/ref/pcolor。html
我试图写一个函数,它以笛卡尔坐标系中的x和y值作为输入,并输出极坐标和三角坐标形式。我希望输出包含指数和正弦/余弦,而不是实际值。例如,如果笛卡尔函数是z=1i,我希望函数输出z=sqrt(2)e^(ipi/4)和z=sqrt(2)(cos(pi/4)Isin(pi/4)。我该怎么做? 函数坐标(x, y) r=sqrt(x.^2 y.^2); θ=atan(y./x); Polarcoord=r
我试图计算一种有效的方法,将笛卡尔坐标系中的图像转换为极坐标表示。我知道ImToPolar等一些功能正在实现这一点,它工作得很好,但对于大图像来说需要相当长的时间,尤其是当它们需要来回处理时。 这是我的输入图像: 然后我使用以0为中心的笛卡尔网格和函数生成一个极网格。最后,我使用绘制我的图像。 这是我得到的: 这正是我需要的图像,它与ImToPolar相同,或者更好。 既然MATLAB知道如何计算
我一直在使用Peter Kovesi的MatLab函数进行机器视觉(如果你不知道的话,这些函数非常出色) 我一直在使用极坐标变换将图像转换为极坐标。Peter Kovesi的函数名为“PolarTrans”,可在此处找到-http://www.peterkovesi.com/matlabfns/#syntheticimages 该函数将图像漂亮地转换为极坐标。然而,我也希望发生相反的情况。Pete
我在将图像转换为极坐标时遇到问题。在Photoshop中很容易:)所以这对我来说是一个新领域。 我有以下图片: 结果应该是这样的: 我在这里看了一下,了解了一些基本知识,但仍然对圆的平方有点困惑: 我几乎不知道如何重新绘制图像。还有一个警告:由于管理限制,我想避免使用像Numpy这样的外部库。
我无法将[R,theta]格式的图像转换为[x,y] 我正在尝试使用interp2。 然后我会: 最后: 但图像不正确! 以下是输入图像(图1)(带R,θ几何): 我想在笛卡尔网格上重建它(使用interp2),所以它看起来像这样(图2): 极坐标图像(图1)中的所有数据应映射到笛卡尔图像的红色部分(图2)。
我正在尝试将极坐标的图像转换为笛卡尔坐标。 将图像转换为极坐标的示例显式执行-想要一个光滑的矩阵方法 我原以为使用上述方法是小菜一碟,但事实并非如此!!如果有人发现我的代码有错误,请告诉我! 我发现非常奇怪的是,当我改变phi时,它会做出根本性的改变,而不是以我期望的方式! 干杯