Software Copyright (C) 2004-2005 Michal Zmiri-Yaniv, Moshe Ofry, Ami Bruker, and Tal Hassner
ImageCompletion is a Windows XP implementation of the algorithm described in the paper:
Y. Wexler, E. Shechtman and M. Irani "Space-Time Video Completion" Computer Vision and Pattern Recognition (CVPR), Washington, June 2004.
The software performs image completion (a.k.a. "image hole filling," "image inpainting"). That is, filling-in holes in images. Note that this is only a partial implementation of the original algorithm, and can only handle images (video is currently not supported).
Although the authors of the original algorithm were kind enough to offer advice and assistance, this tool is by no means an official implementation of their work, and its output should not be taken as representing the quality obtainable by a full implementation of their algorithm.
This software was written by Michal Zmiri-Yaniv, Moshe Ofry, and Ami Bruker as a final (workshop) project, for a BA degree at the Academic College of Tel-Aviv Yaffo, under the supervision of Tal Hassner.
Choose an image.
TIP: For best results, the object to be removed should be large, and its background should be textured. See the examples below to get an idea of the types of images ImageCompletion is best suited for.
Use any standard image editing software (e.g.,
MS-Paint, Photoshop, Paintshop Pro, etc.) to draw a uniformly colored mask over the area
to be completed and save image.
TIP: If an object is to be removed, make sure that the mask is larger than the object by a margin of at least a few pixels.
TIP: Do not save the image as a JPEG (or any other lossy compression format), as this might spoil the mask's color.
Click "Set File" to load the masked image.
Click within the mask in the image to let the software know what is the color associated with the hole.
Choose values for the three parameters as follows:
"Number of Levels": Number of resolution levels. Depends on the size of the hole. For the examples in this page 2-4 levels were used.
"Neighborhood Radius": Size of patches used. Depends on the size of the texture elements of the background. 1=3x3, 2=5x5, 3=7x7 etc. For the examples in this page we used 2-4.
"Number of Rounds": The current version does not stop automatically on convergence. Instead, the number of iterations for each resolution scale must be explicitly entered. This value was usually more than 5, and less than 20.
Press "Fix Hole!" to start the completion process. Note that the current implementation can take a long time to complete an image (for the example images, over two hours) and plenty of memory (several hundred MBs).
Click on the images to view the original full size pictures.
Image with Mask (Input)
Final Result (Output)
If you hold the copyright to one of these images and would like it removed from this page, please contact Tal Hassner, and we will remove it immediately.
Software Copyright (C) 2004-2005 Michal Zmiri-Yaniv, Moshe Ofry, Ami Bruker,
and Tal Hassner
The SOFTWARE ("ImageCompletion") is provided "as is", without any guarantee made as to its suitability or fitness for any particular use. It may contain bugs, so use of this tool is at your own risk. We take no responsibility for any damage that may unintentionally be caused through its use.
You may not use the source to SOFTWARE or distribute SOFTWARE in any form, without express written permission of the copyright holders.
The SOFTWARE makes use of the approximate nearest neighbor package , which is protected under the GNU Lesser General Public License. A copy of this license is included in the distribution.
Version 1.01 is available for download
Requirements: ImageCompletion runs on Windows XP and requires the ".net" framework.
S. Arya, D. Mount, N. Netanyahu, R. Silverman, and A. Wu. An optimal algorithm for approximate nearest neighbor searching in fixed dimensions. Journal of the ACM, 45(6), 1998. Source code available from www.cs.umd.edu/~mount/ANN/.
Y. Wexler, E. Shechtman and M. Irani "Space-Time
Video Completion" Computer Vision and Pattern Recognition (CVPR),
Washington, June 2004.
For any question, requests, problems etc. please feel free to contact Tal Hassner.
This page maintained by
Last update: 13-Aug-2006