Metadata-Version: 2.1
Name: imgdups
Version: 0.1.3
Summary: Very fast two folder image duplicate finder programmed with pickle and cv2
Home-page: https://github.com/ChuckNorrison/imgdups/
Author: Chuck Norrison
Author-email: itsmells@yourshorts.club
License: GPLv3
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Natural Language :: English
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Scientific/Engineering :: Image Processing
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: opencv-python
Requires-Dist: numpy

# imgdups
[![Pylint](https://github.com/ChuckNorrison/imgdups/actions/workflows/pylint.yml/badge.svg)](https://github.com/ChuckNorrison/imgdups/actions/workflows/pylint.yml)

Most image duplicate checkers can find duplicates within a single folder. This solution can verify that no duplicates from one path (search) exists in another path (target). It will use opencv to create image descriptors and cache them into a pickle file for faster processing after it was run the first time. With this approach we can not just find exact duplicates but similar images based on a match score.

## Requirements
Python 3.6+ was tested

`sudo apt install python3 python3-pip`

## Option 1: Install from Source
```
git clone https://github.com/ChuckNorrison/imgdups
cd imgdups
pip3 install .
```

## Option 2: Install from PyPi (recommended)
`pip3 install imgdups`

## CLI Usage
`imgdups --search "/path/to/reference" --target "/path/to/check"`

or if not installed (git clone first)

```
cd imgdups
python3 imgdups.py --search "/path/to/reference" --target "/path/to/check"
```

## Python example

```
#!/usr/bin/env python3
import imgdups

SEARCH_PATH = "/path/to/reference"
TARGET_PATH = "/path/to/check"

img_dups = imgdups.ImgDups(TARGET_PATH, SEARCH_PATH)
duplicates = img_dups.find_duplicates()

for duplicate in duplicates:
    print("%s == %s (score: %d)",
            duplicate["target"],
            duplicate["search"],
            duplicate["score"]
    )

print("%d duplicates found", len(duplicates))

```
