Metadata-Version: 2.1
Name: PyPatchMatch
Version: 0.1.6
Summary: This library implements the PatchMatch based inpainting algorithm.
Author-email: The InvokeAI Project <lincoln.stein@gmail.com>, Kyle Schouviller <kyle0654@hotmail.com>, Matthias Wild <mauwii@outlook.de>, Younesse ANDAM <younesse.andam@gmail.com>
License: MIT License
        
        Copyright (c) 2020 Jiayuan Mao
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: Source Code, https://github.com/mauwii/PyPatchMatch
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Provides-Extra: dev
Provides-Extra: dist
Provides-Extra: test
License-File: LICENSE

# PatchMatch based Inpainting
This library implements the PatchMatch based inpainting algorithm. It provides both C++ and Python interfaces.
This implementation is heavily based on the implementation by Younesse ANDAM:
(younesse-cv/PatchMatch)[https://github.com/younesse-cv/PatchMatch], with some bug fixes, and updates.

## Usage

You need to first install OpenCV to compile the C++ libraries. Then, run `make` to compile the
shared library `libpatchmatch.so`.

For Python users (example available at `examples/py_example.py`)

```python
import patch_match

if patch_match.patchmatch_available:
    image = ...  # either a numpy ndarray or a PIL Image object.
    mask = ...   # either a numpy ndarray or a PIL Image object.
    result = patch_match.inpaint(image, mask, patch_size=3)
```

For C++ users (examples available at `examples/cpp_example.cpp`)

```cpp
#include "inpaint.h"

int main() {
    cv::Mat image = ...
    cv::Mat mask = ...

    cv::Mat result = Inpainting(image, mask, 5).run();

    return 0;
}
```


## README and COPYRIGHT by Younesse ANDAM
@Author: Younesse ANDAM

@Contact: younesse.andam@gmail.com

Description: This project is a personal implementation of an algorithm called PATCHMATCH that restores missing areas in an image.
The algorithm is presented in the following paper
 PatchMatch  A Randomized Correspondence Algorithm
               for Structural Image Editing
   by C.Barnes,E.Shechtman,A.Finkelstein and Dan B.Goldman
   ACM Transactions on Graphics (Proc. SIGGRAPH), vol.28, aug-2009

 For more information please refer to
 http://www.cs.princeton.edu/gfx/pubs/Barnes_2009_PAR/index.php

Copyright (c) 2010-2011


## Requirements

To run the project you need to install Opencv library and link it to your project.
Opencv can be download it here
http://opencv.org/downloads.html
