Windows desktop application (GTK 4) for finding and removing visually similar images.
Near-duplicates are clustered by perceptual hash or ORB feature matching, then reviewed in a card gallery.
- Comparison modes: Average hash (aHash), DCT pHash, ORB (OpenCV)
- Configurable similarity threshold and worker thread count
- Union-Find clustering of similar pairs
- Persistent caches (
hash_cache.bin,feature_cache.bin) - Virtualized results gallery with hover preview
- Group navigation: Prev/Next; Shift ±10; Ctrl+Shift ±100
- Recursive scan, exclude directories, Unicode paths
- UI languages: English, Russian; Graphite light/dark themes
Supported formats: JPEG, PNG, BMP.
- MSYS2 MinGW64
- Packages:
mingw-w64-x86_64-gtk4,mingw-w64-x86_64-libpng,mingw-w64-x86_64-libjpeg-turbo,mingw-w64-x86_64-opencv,mingw-w64-x86_64-pkgconf - Graphite GTK theme as
Graphite-Light/Graphite-DarkunderC:\msys64\mingw64\share\themes
build.batProduces a portable tree in bin\:
Image_Deduplicator.exe— launcher (addsDLL\toPATH, then starts the app)Image_Deduplicator_app.exe— application binaryDLL\— MinGW/GTK/OpenCV runtime librariesshare\,lib\— schemas, themes, icons, gdk-pixbuf loaders
bin\Image_Deduplicator.exe- Select a directory (optionally exclude subfolders).
- Configure threshold, algorithm, and threads in settings.
- Start the scan.
- Review groups, select unwanted images, delete or open.
| Algorithm | Use case | Typical threshold |
|---|---|---|
| Average (aHash) | Resize, JPEG recompression | 85–95% |
| DCT (pHash) | Same; often more stable than aHash | 85–95% |
| ORB | Crops, rotations, partial overlap | 20–50% |
ORB pipeline: ORB descriptors → Hamming match (Lowe ratio) → RANSAC homography → score in [0, 1].
settings.ini next to the executable:
| Key | Values | Description |
|---|---|---|
recursive |
true / false |
Scan subdirectories |
hash_threshold |
0–100 |
Minimum similarity to link images |
hash_algorithm |
average / dct / orb |
Comparison mode |
thread_count |
integer | Worker threads (capped by CPU count) |
app_theme |
light / dark |
Theme |
language |
en / ru |
UI language |
debug |
true / false |
Right-click thumbnail → save hash/keypoints under DEBUG\ |
include/ Headers
src/ Sources
build.bat Build and package
copy_deps.ps1 Runtime DLL copy
Issues and pull requests: GitHub.
MIT. See LICENSE.