gpt4 book ai didi

matlab - 从深度提取轮廓

转载 作者:太空宇宙 更新时间:2023-11-03 20:21:02 25 4
gpt4 key购买 nike

你好,我有一张深度图像,我想从中提取人(人)的剪影。我像这样使用像素阈值:

for i=1:240 
for j=1:320
if b(i,j)>2400 || b(i,j)<1900
c(i,j)=5000;
else
c(i,j)=b(i,j);
end
end
end

但是还剩下一部分。有什么办法可以去除吗?

原始图像: enter image description here

Extracted_silhouette: enter image description here

最佳答案

根据 this thread可以根据估计的表面法线方向找到深度图边界。
要估计表面法线的方向,您可以

[dzx dzy] = gradient( depth_map ); %// horizontal and vertical derivatives of depth map
n = cat( 3, dzx, dzy, ones(size(dzx)) );
n = bsxfun( @rdivide, n, sqrt( sum( n.^2, 3 ) ) ); %// normalize to unit length

一个简单的方法是阈值

e = abs( n(:,:,3) ) < 1e-2;

结果为
enter image description here

可以在 this answer 中找到一种从边界导出轮廓的更复杂的方法。 .

关于matlab - 从深度提取轮廓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27903891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com