我想知道如何将2D深度图像/热图转换为三维高度字段。其中Z值是2D图像的值。
我有一个RGB图像:
我还拥有相应的深度图像/热图:
我想将它们组合成这样的高度字段,其中Z值是深度图像/热图的值:
除了将RGB值从RGB图像中保存在3D高度字段之外。
发布于 2019-10-10 12:08:03
您所描述的实质是向数据集添加另一个维度。有几种方法可以实现这一点,但是请注意,有些方法可能会让其他人感到困惑。您要导出的另一个程序也可能对数据的形状等有很强的期望,所以请检查一下。下面是一些关于你想做什么的想法.
本质上,您描述的是数据的两个“属性”:彩色图像(一个3通道属性)和高度字段(一个单一的“通道”)。一些备选方案:
pandas
,可以将两个数组存储在一个单一的数据结构中。对于这个用例来说,这并不理想,但至少可以让您对轴进行标记,这样您就可以清楚地知道数据的4‘通道are.class
是什么了。通过这种方式,您可以准确地记录这两个数组是什么,并编写方法来将它们一起绘制。类实例可以被腌制并保存到磁盘中,或者您可以编写方法以任意方式保存它们(例如,HDF5 )。如果我要做很多这样的事情,并且需要一个健壮的、可持续的解决方案,我就会这样做。下面是这门课的样子:
class BumpImage():
"""
An image with a 3d height field attached.
"""
def __init__(self, photo, height):
if photo.ndim == 2:
# Make greyscale image into RGB.
photo = np.repeat(photo[:, :, None], 3, axis=-1)
self.photo = photo
if height.shape == photo.shape[:2]:
self.height = height
else:
raise TypeError("Height must be 2d array")
def size(self):
return self.height.shape
def plot(self, ax=None):
# Make a 3d plot with matplotlib or whatever.
return ax
def save(self, fname):
# Make HDF5 file called fname.
return
我不会做的事:
https://stackoverflow.com/questions/58313943
复制相似问题