我有一个来自ifm 3D相机的深度图像,它利用飞行时间概念来捕捉深度图像。相机附带一个显示图像的软件,如下图所示:
我可以从相机中提取深度数据,并一直试图重新创建它们的表示,但我没有成功。无论我如何尝试规范化数据范围或更改数据类型格式,最终得到的图像中心总是“较暗”,并且随着图像移动而变亮。由于某种原因,颜色范围也不匹配。以下是我尝试的主要代码:
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)
这让我看到了下面的图像:
我尝试了其他组合,也编写了自己的规范化和着色函数,但得到了相同的结果。在这一点上,我不确定我是否做错了什么,或者这是openCV窗口查看器的限制还是其他什么
我还上传了深度图像文件,以防有用: depth_image
在此方面的任何帮助都将不胜感激
在Python/OpenCV中有一种方法。它并不精确,但您可以修改颜色贴图或更改拉伸。基本上,我创建了7种颜色的LUT:红色、橙色、黄色、蓝色和紫色。我注意到,使用HSV将在两端产生红色,而您使用的颜色贴图仅从红色变为紫色。我也不太看好绿色。所以我把它忘了
输入:
拉伸图像:
彩色图像:
LUT:
相关问题 更多 >
编程相关推荐