小编Gru*_*udy的帖子

对 16 位深度图像进行着色的正确方法是什么?

我有一张来自 ifm 3D 相机的深度图像,该相机利用飞行时间概念来捕获深度图像。相机附带一个显示图像的软件,如下所示: 12个随机排列的钱柜的深度图像

我可以从相机中提取深度数据,并一直尝试重新创建它们的表示,但我没有成功。无论我如何尝试标准化数据范围或更改数据类型格式,我总是会得到一个中心“较暗”的图像,并且随着它移开而变亮。由于某种原因,颜色范围也不匹配。这是我尝试过的主要代码:

gray_dist = cv2.imread(dist_path, cv2.IMREAD_ANYDEPTH)

# cv2.normalize(dist, dist, 0, 65535, cv2.NORM_MINMAX)
# cv2.normalize(dist, dist, 0, 255, cv2.NORM_MINMAX)
cv2.normalize(dist, dist, 1440, 1580, cv2.NORM_MINMAX)

dist = dist.astype(np.uint8)
dist = cv2.applyColorMap(dist, cv2.COLORMAP_HSV)
# dist = cv2.cvtColor(dist, cv2.COLOR_HSV2BGR)

cv2.imshow("out", dist)
cv2.waitKey(0)
Run Code Online (Sandbox Code Playgroud)

这让我得到了下图:

HSV 颜色图

我尝试过其他组合,也编写了自己的标准化和着色函数,但得到了相同的结果。我现在不确定我是否做错了什么,或者是否是 openCV 窗口查看器的限制或其他原因。

我还上传了深度图像文件,以防有帮助: 深度图像

任何对此的帮助将不胜感激。

python opencv colors image-processing computer-vision

3
推荐指数
1
解决办法
5737
查看次数