2026-06

Auto PhotoEditor

A Python tool that culls blurry/blown-out photos and rescues hazy ones — shared scoring engine behind both a CLI and a live Tkinter GUI.

pythonopencvimagingtooling

Overview

Auto PhotoEditor takes the grunt-work out of sorting a folder of photos: it automatically flags the bad shots (blurry, over- or under-exposed) and rescues the salvageable ones (hazy, flat), so you only review what matters. Originals are never destroyed — bad photos are moved, enhanced photos are copied.

Repository →

What it does

Architecture

A single source of truth, photo_core.py, holds all image algorithms — scoring, filters, and the haze_action() decision helper. Both front-ends import from it, so the scriptable CLI (cull_photos.py) and the interactive Tkinter GUI (cull_photos_gui.py) always behave identically. Scan and dehaze run on daemon worker threads with a stop flag; widget updates marshal back to the UI thread.

Techniques

Stack

Python 3 (developed on 3.12 / miniconda), OpenCV and NumPy for image processing, Tkinter + Pillow for the GUI, and threading for concurrency.

← All projects