题
我有一个代表我想要清理的深度信息的图像序列.
有一些异常值(强度低于25的值,0-255范围),我希望用一个可接受的替代方案填充(局部特定区域的平均值可能是一个很好的猜测).
有人能看到一个简单的方法吗?我试图使用中值滤波器(滤波器大小为10)用NaN代替不需要的值,但它确实使情况恶化,相反通过用一般平均值代替它们来改善.
附:有人已经建议我使用快速小波重建,但我真的不知道从哪里开始……
实施解决方案(到目前为止)
我实现的解决方案(在阅读tmpearce建议的inpaint_nans之前)是:
>复制原始图像;
>用一般平均值填充无效像素;
>使用光线10的圆盘使其模糊;
>用我从第3点得到的值替换原始图像中的无效值.
>运行大小为10的中值过滤器.
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});