【发布时间】:2021-08-13 02:40:53
【问题描述】:
我有一个来自 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
对此的任何帮助将不胜感激。
【问题讨论】:
-
看看this的帖子。
-
在展示应用程序中,看起来仅使用了大约 1.44 - 1.58 的值范围(请参阅窗口底部的宏/微滑块),因此您的规范化应该转换为 64位浮点数,减去 1.44,除以 0.14 并乘以 1(或省略)。然后应用浮点颜色图(0 到 1 输入范围)。
-
要应用的颜色图可以是 RAINBOW 或 JET(反转):docs.opencv.org/master/d3/d50/group__imgproc__colormap.html
-
软件中显示的图片和您提供的示例图片不一样。当您在软件中查看示例图像时,中心的黑暗是否会出现?
-
抱歉,回复晚了。是的,这是不同的图像,但只是相机下方的收银台配置不同。图像采集是一样的。摄像头正好设置在距离桌子 1.5 米的高度。
标签: python opencv image-processing colors computer-vision