【发布时间】:2019-12-13 12:11:11
【问题描述】:
说明:
我将这些数据表示在具有 256 列和 640 行的笛卡尔坐标系中。每列代表一个角度,theta,从 -65 度到 65 度。每行代表一个范围 r,从 0 到 20 m。
下面给出一个例子:
使用以下代码,我尝试制作一个网格并将每个像素位置转换为它在极坐标网格上的位置:
def polar_image(image, bearings):
(h,w) = image.shape
x_max = (np.ceil(np.sin(np.deg2rad(np.max(bearings)))*h)*2+1).astype(int)
y_max = (np.ceil(np.cos(np.deg2rad(np.min(np.abs(bearings))))*h)+1).astype(int)
blank = np.zeros((y_max,x_max,1), np.uint8)
for i in range(w):
for j in range(h):
X = (np.sin(np.deg2rad( bearings[i]))*j)
Y = (-np.cos(np.deg2rad(bearings[i]))*j)
blank[(Y+h).astype(int),(X+562).astype(int)] = image[h-1-j,w-1-i]
return blank
这会返回如下图像:
问题:
这是我真正想要实现的目标,除了两件事:
1) 新图像中似乎有一些伪影,而且映射似乎有点粗糙。
有人对如何进行插值以摆脱这种情况提出建议吗?
2) 图像仍以笛卡尔表示,这意味着我没有任何极坐标网格线,也无法可视化范围/角度的间隔。
有人知道如何用 theta 和范围内的轴刻度来可视化极坐标网格吗?
【问题讨论】:
-
你有什么问题?
-
现在应该清楚了。
标签: python numpy math image-processing signal-processing