如何从深度图像中平滑和提取对象
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
别无选择,那么你可能有人工制品。
我正在使用提供人体深度图像的数据集,我需要从该图像中提取对象,或者至少在 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
别无选择,那么你可能有人工制品。