2011-10-29 27 views
1

最接近的颜色是否有一个高效方式像素来填充的零与非零值最近的非零值像素之间的值,同时使零的其余像素不变?为了澄清,我正在寻找对与非零像素的最近距离低于给定值(例如4个像素)的像素进行修补。修复中的像素与在MATLAB

该图像最初表示为uint32整数的矩阵。

                                                                                                            enter image description here

在上面的例子中,着色区域应充满与周围颜色之间的所有薄破解,而大黑色地区应保持不变(即该例程应该对着色区域之间的像素进行修补)。

我想有一种方法可以通过插值来实现。无论如何,我正在寻找一个相对有效的解决方案。

回答

1

给定输入矩阵A

b = imclose(A==0,ones(3,3)) %only the big zero regions 
c = imdilate(A,ones(3,3)) %inpainting all neighboring pixels 
d = zeros(size(A)); 
d(b==0) = c(b==0); %copy the inpainting only in places where there are no big regions 

我没有测试,所以可能存在一些问题的代码。 (如果您对代码进行了更改以使其正常工作,请编辑我的答案)