如何将深度图的大小从 [400,400] 调整为 [60,60]?

How to resize a depth map from size [400,400] into size [60,60]?

我有一张使用kinect相机获得的深度图图像。 在该图像中,我选择了一个大小为 [400,400] 的区域并将其存储为另一幅图像。 现在,我想知道如何将此图像的大小调整为 python 中的 [x,y] 大小。

与普通图像相同

import cv2
import matplotlib.pyplot as plt

image = cv2.imread(path_to_your_image) # Insert your image address here
resized = cv2.resize(image, (x, y),  interpolation = cv2.INTER_NEAREST) 

plt.imshow(resized)
plt.show()

我不建议像处理图像那样降低深度图的分辨率。想象一个场景,在墙前 5 米处有一个小物体:

  • 使用 bicubic/bilinear 算法,您将获得物体和墙壁之间的深度。实际上中间只有一个免费的space。
  • 使用 nearest-neighbor 插值更好,但您忽略了很多信息,在某些情况下,对象可能会消失。

最好的方法是使用模式功能。将原始深度图分成windows。每个 window 将代表缩小地图中的一个像素。对于它们中的每一个,计算最频繁的深度值。您可以使用 Python 的 statistics.mode() 函数。