我知道这个问题已经被回答了很多次,但是我不知道我做的是好是坏。
我得到了一个带有缺陷位置和图像ID的文件。图像大小为96*96。起源是(48,48)
imgID X Y
1 5 6
1 87 76
2 45 23
由此计算R和T
x,y = df.X-48,df.Y-48
r = np.sqrt(x**2+y**2)
t = np.arctan2(y,x)
df["r"]=r
df["t"]=t
然后,我为每个图像创建大小为96×96的空矩阵,对于图像1(例如),我在每个坐标(R,T)处赋值0
当我绘制矩阵时,我的结果很奇怪。。我错过了什么重要的事情吗?
不确定您是否坚持使用Python解决方案,或者您只是想完成工作。如果是前者,请忽略我,我的答案将深入人心。如果是后者,您可以使用ImageMagick来完成,它安装在大多数Linux发行版上,适用于macOS和Windows。
所以,从这个色轮开始。巴布亚新几内亚:
只需在终端中使用以下命令,如果在Windows上,则使用命令提示符:
magick colorwheel.png -distort depolar 0 result.png
这是一个有点关闭,因为我的输入图像不完全正方形或居中,但你得到的想法:-)
将扭曲极轴替换为扭曲极轴进行逆变换。
对于v7之前的版本,在上面的命令中将magick
替换为转换
。
我正在尝试将极坐标的图像转换为笛卡尔坐标。 将图像转换为极坐标的示例显式执行-想要一个光滑的矩阵方法 我原以为使用上述方法是小菜一碟,但事实并非如此!!如果有人发现我的代码有错误,请告诉我! 我发现非常奇怪的是,当我改变phi时,它会做出根本性的改变,而不是以我期望的方式! 干杯
我想知道是否有人帮助我理解如何将顶部图像转换为底部图像。以下链接中提供了这些图像。顶部图像采用笛卡尔坐标。底部图像是极坐标中的转换图像
我无法将[R,theta]格式的图像转换为[x,y] 我正在尝试使用interp2。 然后我会: 最后: 但图像不正确! 以下是输入图像(图1)(带R,θ几何): 我想在笛卡尔网格上重建它(使用interp2),所以它看起来像这样(图2): 极坐标图像(图1)中的所有数据应映射到笛卡尔图像的红色部分(图2)。
我试图计算一种有效的方法,将笛卡尔坐标系中的图像转换为极坐标表示。我知道ImToPolar等一些功能正在实现这一点,它工作得很好,但对于大图像来说需要相当长的时间,尤其是当它们需要来回处理时。 这是我的输入图像: 然后我使用以0为中心的笛卡尔网格和函数生成一个极网格。最后,我使用绘制我的图像。 这是我得到的: 这正是我需要的图像,它与ImToPolar相同,或者更好。 既然MATLAB知道如何计算
我试图将图像从极坐标转换为笛卡尔坐标,但在应用公式后,我得到了浮点坐标(r和teta),我不知道如何使用x和y的浮点来表示空间中的点。可能有一种方法可以将它们转换为整数,并仍然保留分布,但我不知道如何。我知道OpenCV中有像warpPolar这样的函数,但我想自己实现它。任何想法都会有帮助:) 这是我的代码:
我试图对下面的第一幅图像进行极坐标变换,最后得到第二幅。然而,我的结果是第三张图片。我有一种感觉,这与我选择的“原产地”有关,但我不确定。