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

时间:2017-10-16 13:11:15

标签: matlab filtering depth smoothing silhouette

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

图像样本如下所示:

Human Body in RED and noise in black colors

这是我使用

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

human

请问有什么方法吗? 在此先感谢

1 个答案:

答案 0 :(得分:0)

对于您显示的图像,其中所有内容都是灰度但有些东西是红色的,那么就这样做:

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

这基本上比较了像素的RGB值的差异,并获得高于阈值的值。如果你有适当的png,那么阈值应该只有1,但是对于jpg工件,你可能需要更高的值,因为这个图像可以完成工作。

结果图像中有一些微小的人工制品,很可能是由于jpg。当你做科学时,你需要存储在png。如果你绝对没有其他选择,那么你可能会有人工制品。