Search code examples
matlabimage-processingprojection

How to fill empty parts of a projected image?


When i projected a 3D model on a 2D plan (Perspective projection) the result of the projection appeared as the following image.

Resulted Projection

and i need to fill empty points in this image to look like this one

i wonder that i can find a good way to fill this points with a professional way using any image processing algorithms using matlab

Silhouette image


Solution

  • Here is a MATLAB version somewhat equivalent to @belisarius answer:

    I = double(imread('https://i.sstatic.net/sedZH.png'));
    BW = im2bw(I,graythresh(I));
    BW = imerode(BW,strel('square',2*3+1));
    BW = imfilter(BW, fspecial('average',10));
    BW = imdilate(BW,strel('square',2*3+1));
    BW = imcomplement(BW);
    imshow(BW)
    

    enter image description here