【问题标题】:Depth Image background changes深度图像背景更改
【发布时间】:2015-06-16 09:43:12
【问题描述】:

我正在使用 Kinect v2 记录深度图像序列。 当我在 MATLAB 中绘制图像时,图像颜色会发生很大变化。像这样的图片

在matlab中变量uint16类型。

我的问题是它为什么会改变?我该如何解决? 这是绘制图像的代码

for i=1:52
    imagesc(Depth(:,:,i));colormap gray; 
    pause(0.1);
end

【问题讨论】:

标签: matlab image-processing computer-vision kinect


【解决方案1】:

如果您想以视觉上一致的序列进行可视化,则不应相互独立地缩放深度图像。考虑到 colormap(gray) 只为您提供 20 个不同的级别,更是如此。

尝试类似:

m = min(Depth(:));
M = max(Depth(:));
scale = 1.0 / (M - m);
colormap(gray(256))
for i=1:52
  d = scale .* (Depth(:,:,i) - m);
  imagesc(d);
  pause(0.1);
end

【讨论】:

  • 我尝试使用您建议的代码。但是输出是这样的,result
  • 您可能有一些帧的最小值非常低或最大值非常高。建议您通过对 Depth 的内容进行直方图来查看是否是这种情况,那么您也许可以将范围集中在中间深度。
  • 所有帧的最小值为0,但最大值在变化,如上图所示。你能告诉我如何通过对深度内容的直方图进行归一化吗?
  • 没有魔法。查看单个帧的直方图和累积的直方图,这应该会告诉您是否存在可以在整个序列中保持固定以进行可视化的一系列常见级别。然后阈值此范围内的所有帧并显示拉伸对比度。我建议在 Gimp 或 Photoshop 中进行分析。
  • 我没有 Gimp 或 Photoshop 方面的专业知识
猜你喜欢
  • 2012-09-18
  • 1970-01-01
  • 2021-10-08
  • 2016-01-09
  • 2020-12-16
  • 2011-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多