C g*_*ics 7 matlab image image-processing numerical-analysis
我想问一个关于单通道图像插值的问题.选择单通道只是为了简单起见,否则我正在处理多个通道图像.假设存在具有纯黑色背景(像素强度0)的单个通道图像,其中存在具有非零强度值的一些像素.我想应用插值算法用来自相邻非零强度像素的插值来填充图像的整个黑色区域.
对于适用于此问题的平滑插值,您会推荐哪种插值算法?
作为输入,我们当然知道那些非黑色像素的位置及其强度.但该位置有些随机(一行可能是10个像素,另一行只有8个).

常规interp2在这里不起作用,因为你的点不是定期(不坐在网格上).您可以尝试从文件交换中TriScatteredInterp下载inpaint_nans.
以下是您的案例中的解决方案TriScatteredInterp:

function solveStackOverflowProblem()
im = imread('http://i.stack.imgur.com/lMaYR.png');
im = im(:,:,2);
[i,j] = find(im);
y = j; x = i;
indexes = sub2ind(size(im),i,j);
interpolator = TriScatteredInterp(x,y,double(im(indexes)));
[Y,X] = meshgrid( 1:size(im,2),1:size(im,1));
reconstructedImage = interpolator(X,Y);
figure;imshow(reconstructedImage/255)
end
Run Code Online (Sandbox Code Playgroud)