【问题标题】:How to use Kinect depth data in watershed image segmentation如何在分水岭图像分割中使用 Kinect 深度数据
【发布时间】:2012-12-24 07:07:14
【问题描述】:

我有来自 Kinect 的 RGB 和深度图像作为 png 格式。我正在尝试将深度数据与分水岭分割一起使用,但我不知道如何结合这两种数据并获得更准确的结果。我检查了一些论文,但我不理解结果或找不到专门为分水岭算法编写的解决方案。如何包含深度数据作为分割过程的参考点?

我正在使用 MatLab 的图像处理工具箱。

图片来自 Nathan Silberman 等人。 al. 在Silberman's website上的数据库

一个示例 RGB 图像及其对应的深度文件如下所示(注意深度图像,原本是二进制图像,被转换为 uint8):

更新:我尝试通过获取每个通道(红色、绿色、蓝色和深度)并计算它们的权重,从 RGB 源与深度数据一起创建加权灰度图像;然后包括与每个相应像素的权重相乘的值。但是得到的灰度图像并没有显着改善结果。它并不比仅基于 RGB 的分割好。如果我遵循这种方法,我还能做什么?或者,如何查看深度数据的效果?

【问题讨论】:

  • 你能包含这样的图像吗?根据情况,我更喜欢使用另一种采用种子点的 Meyer 分水岭算法。
  • 图片已添加!是的,Meyer's 会很棒,但我想尝试没有种子点。
  • 你误会了,会自动找到种子点来创建标记图像,但分水岭实现必须接受图像和标记图像。我只是提到使用不同的实现。
  • 请澄清原始深度图像是二进制图像是什么意思。将深度设为二进制是没有意义的,并且包含的​​图像具有级别 0、88、98、104。我想不出任何可以将 {0, 1} 变为 {0, 88, 98, 104 的转换}.
  • 这里是您发布为深度文件的渐变的分水岭:i.imgur.com/gyPdy.png。我看不出它与输入图像有什么关系,您需要澄清它们之间的关系。

标签: matlab image-processing image-segmentation watershed


【解决方案1】:

除非您在上传时出错,否则深度图像是黑色的并且不包含任何深度数据。请记住(荷兰语)您在这里比较苹果和梨。 Whatershed 图像不是深度图像,它们是轮廓的提取。

接下来你会出错,深度图像的分辨率低于彩色图像。对于 kinect v2,它只有 512x424,并且 kinect one 的真实深度视觉甚至低于其返回的位图大小(它是低分辨率深度,并不是每个像素都是测量的结果,与 kinect v2 相比)。但是 v2 的视频输出更好。

如果您想要更好地划分 rgb 图像的分水岭,请平均多个相机帧以消除相机噪点。

PS 我建议你下载 windows kinect sdk 并查看它提供的示例。

【讨论】:

    猜你喜欢
    • 2020-07-27
    • 1970-01-01
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多