如何从深度图像中平滑和提取对象

How to smooth and extract an object from depth Image

我正在使用提供人体深度图像的数据集,我需要从该图像中提取对象,或者至少在 Matlab 中去除图像中不属于人体的其他失真。

图片示例如下所示:

这是我使用

时的输出
I = imread ('39.jpg');
human = sum(I,3)>10+10;

human

请问有什么办法吗? 提前致谢

对于您显示的图像,所有内容都是灰度但有些是红色的,那么只需执行:

so=imread('https://i.stack.imgur.com/hZOQv.jpg');
human=sum(abs(diff(single(so),1,3)),3)>20;

这本质上是比较像素的 RGB 值的差异,并获得高于阈值的值。如果你有合适的 png,那么阈值应该只是 1,但是对于 jpg 伪影你可能需要更高的值,因为这张图片 20 就可以了。

结果图像中有一些微小的人工制品,很可能是由于 jpg。做科普的时候需要存入png。如果你除了 jpg 别无选择,那么你可能有人工制品。