具有低对比度的分段深度图像

时间:2015-08-05 12:14:52

标签: c++ opencv computer-vision image-segmentation

我正试图从这个深度图像中分割出手:

enter image description here

我尝试了分水岭,区域增长,抓取,但所有这些都失败主要是因为没有明显的优势。我试图使图像清晰,但它也没有给我带来好结果。

1 个答案:

答案 0 :(得分:2)

这可能不是您希望的答案,但它可能会帮助您向前迈进一步。由于我只提供算法提示,我将使用Matlab而不是opencv。

由于这不是普通的强度图像,而是深度图像,因此您应该使用场景的隐含几何。可以帮助你的关键假设是手放在表面上。如果你可以估计表面方程,你可以更容易地检测到手。

[y x] = ndgrid( linspace(-1,1,size(img,1)), linspace(-1,1,size(img,2)) );
X = [reshape(x(101:140,141:180),[],1), reshape(y(101:140,141:180),[],1), ones(1600,1)];
srf=(X\reshape(img(101:140,141:180),[],1)); %// solving least-squares for the 40x40 central patch

 aimg = img - x*srf(1) - y*srf(2) - srf(3); %// subtracting the recovered surface

使用中值滤波器来清理"它有点,并应用一个简单的阈值

 medfilt2(aimg,[3 3]) < -1.5

产量

enter image description here

不完全是你所希望的,但我认为它向前迈进了一步;)

PS,
您可能会发现Alpert, Galun, Nadler and Basri Detecting faint curved edges in noisy images (ECCV2010)与您的问题相关的工作。