Atc*_*old 5 matlab image-processing grayscale kinect
我有一个代表我想要清理的深度信息的图像序列.有一些异常值(强度低于25的值,0-255范围),我希望用一个可接受的替代方案填充(局部特定区域的平均值可能是一个很好的猜测).
有人能看到一个简单的方法吗?我试图使用中值滤波器(滤波器大小为10)用NaN代替不需要的值,但它确实使情况恶化,相反通过用一般平均值代替它们来改善.
PS有人已经建议我使用快速小波重建,但我真的不知道从哪里开始......
我实现的解决方案(在阅读tmpearceinpaint_nans
建议之前)是:
img2 = img;
img2(img < .005) = mean(img(:));
H = fspecial('disk',10);
img3 = imfilter(img2,H,'symmetric');
img4 = img;
img4(img < .3) = img3(img < .3);
filterSize = 10;
padopt = {'zeros','indexed','symmetric'};
IMG = medfilt2(img4, [1 1]*filterSize, padopt{p});
Run Code Online (Sandbox Code Playgroud)
我推荐inpaint_nans贡献来自MATLAB File Exchange
- 开始你已经通过替换异常值NaN
并使用链接从那里开始.
从功能描述:
使用非NaN元素在2维阵列中插入NaN元素.也可以推断,因为它不使用数据的三角测量.Inpaint_nans提供了几种不同的插值方法,可以在精度与速度和所需内存之间进行权衡.目前在inpaint_nans中找到的所有方法都基于稀疏线性代数和PDE离散化.实质上,解决PDE与所提供的信息一致.
万岁可重复使用的代码!