All Projects → cheind → Inpaint

cheind / Inpaint

Licence: other
✏️ Inpaint is a C++ library providing image inpainting algorithms

Projects that are alternatives of or similar to Inpaint

Serverless Docker Image Resize
Simple serverless image resize on-the-fly - Deploy with one command - Built with AWS Lambda and S3
Stars: ✭ 114 (-9.52%)
Mutual labels:  image-processing
Whatsapp Like Photoeditor
A library module that tries to mimic whatsapp photo editor.
Stars: ✭ 121 (-3.97%)
Mutual labels:  image-processing
Slic Python Implementation
🖼The python implementation to make superpixels by slic.
Stars: ✭ 125 (-0.79%)
Mutual labels:  image-processing
Reproducible Image Denoising State Of The Art
Collection of popular and reproducible image denoising works.
Stars: ✭ 1,776 (+1309.52%)
Mutual labels:  image-processing
Mirtk
The Medical Image Registration ToolKit (MIRTK), the successor of the IRTK, contains common CMake build configuration files, core libraries, and basic command-line tools. Extension packages are hosted by the MIRTK GitHub group at
Stars: ✭ 119 (-5.56%)
Mutual labels:  image-processing
Typefont
The first open-source library that detects the font of a text in a image.
Stars: ✭ 1,575 (+1150%)
Mutual labels:  image-processing
Autoannotationtool
A label tool aim to reduce semantic segmentation label time, rectangle and polygon annotation is supported
Stars: ✭ 113 (-10.32%)
Mutual labels:  image-processing
Bitmap
C++ Bitmap Library
Stars: ✭ 125 (-0.79%)
Mutual labels:  image-processing
Mgan
Masking GAN - Image attribute mask generation
Stars: ✭ 120 (-4.76%)
Mutual labels:  image-processing
Triangle
Convert images to computer generated art using delaunay triangulation.
Stars: ✭ 1,838 (+1358.73%)
Mutual labels:  image-processing
Tensorflow Recorder
TFRecorder makes it easy to create TensorFlow records (TFRecords) from Pandas DataFrames and CSVs files containing images or structured data.
Stars: ✭ 119 (-5.56%)
Mutual labels:  image-processing
Steppy
Lightweight, Python library for fast and reproducible experimentation 🔬
Stars: ✭ 119 (-5.56%)
Mutual labels:  image-processing
Open Solution Salt Identification
Open solution to the TGS Salt Identification Challenge
Stars: ✭ 124 (-1.59%)
Mutual labels:  image-processing
Overmix
Automatic anime screenshot stitching in high quality
Stars: ✭ 114 (-9.52%)
Mutual labels:  image-processing
Unflattener
Make normal maps for 2D art
Stars: ✭ 125 (-0.79%)
Mutual labels:  image-processing
Aesthetics
Image Aesthetics Toolkit - includes Fisher Vector implementation, AVA (Image Aesthetic Visual Analysis) dataset and fast multi-threaded downloader
Stars: ✭ 113 (-10.32%)
Mutual labels:  image-processing
Gil
Boost.GIL - Generic Image Library | Requires C++11 since Boost 1.68
Stars: ✭ 122 (-3.17%)
Mutual labels:  image-processing
Lerc
Limited Error Raster Compression
Stars: ✭ 126 (+0%)
Mutual labels:  image-processing
Blur Detection
Some implementations of algorithms for blur detection in JPEGs
Stars: ✭ 125 (-0.79%)
Mutual labels:  image-processing
Jquery Filepond
🔌 A handy FilePond wrapper for jQuery
Stars: ✭ 124 (-1.59%)
Mutual labels:  image-processing

Inpaint

Inpaint is a C++ library providing implementations of image inpainting and image completion methods. Image inpainting is the process of recovering or restoring image regions in a way that is non-detectable for an observer who does not know the original image.

While inpainting refers to restoring rather small regions such as scratches and other video artefacts, image completion deals with removal / restoring of large image parts.

Inpaint focuses on the task of object removal and is therefore optimized to work with large areas of reconstruction. Below is a side-by-side view of two images. On the left the original image, on the right the modified image as produced by Inpaint, after the user selected the rope to be removed.

Original Inpainted
Original Image Inpainted image

Building from source

To build Inpaint from source you need the following prerequisites

  • CMake - for generating cross plattform build files
  • OpenCV - for image processing related functions

Although Inpaint should build accross multiple platforms and architectures, tests are carried out on these systems

  • Windows 7/8/10 MSVC10/MSVC14 x86/x64 OpenCV 2.x/3.x

If the build should fail for a specific platform, don't hestitate to create an issue. I'm also happy to accept any pull requests.

Inpainting images

After building you might want to try out inpaint_image_criminisi

  1. Launch inpaint_image_criminisi <image>.
  2. Use the sliders on top of the UI to adjust patch and stencil size. Patch size refers to the size of texels that will be used during inpainting. It should be roughly the size of minimum texture feature size you intend to inpaint. Stencil size refers to radius of the interactive drawing tools explained in the following 2 steps.
  3. While holding your left mouse button pressed, move your mouse to mark the target area to be inpainted.
  4. While holding your right mouse button pressed, move your mouse to mark the source area from which samples can be copied to target area. If you skip this step, the entire image without source region is used as source area.
  5. Press e to toggle between editing / inpaint mode.
  6. Press x to quit.

License

   Copyright Christoph Heindl 2014-2017

   Inpaint is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.
   
   Inpaint is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
   
   You should have received a copy of the GNU General Public License
   along with Inpaint.  If not, see <http://www.gnu.org/licenses/>.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].