我正在使用一个提供人类深度图像的数据集,我需要从这个图像中提取对象,或者至少在Matlab中删除图像中不属于人体的其他失真。
图像样本如下所示:
这是我使用
时的输出I = imread ('39.jpg');
human = sum(I,3)>10+10;
请问有什么方法吗? 在此先感谢
答案 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
。如果你绝对没有其他选择,那么你可能会有人工制品。