A desktop GUI tool for extracting high-quality, non-blurry frames from video files, built for photogrammetry workflows and other computer vision or machine learning needs.
Developed with Python, OpenCV, and TTKBootstrap.
- 🎥 Supports .mp4, .mov, .avi, .mkv formats
- 🧠 Blur Filtering – skips blurry frames using Laplacian variance
- ⚙️ Multi-Core Processing – choose 4, 8, or 16 workers
- 💾 Resume & Session Saving – avoid reprocessing on crash
- 📈 Real-Time Progress Tracking – per-worker progress bars
- 💻 CPU or GPU Ready – UI dropdown lets you switch processing mode
- 📁 CSV Logging (optional) – includes detailed stats per worker
You can run it in two ways:
(Built using Nuitka to avoid dependency issues and icon bugs)
Just download and run the .exe
from the Releases page.
- Python 3.10+
- pip
Install dependencies:
pip install -r requirements.txt
Run the app:
python frame_extractor_gui.py
🛠️ Building the Executable with Nuitka If you'd like to build the .exe yourself:
- Install Nuitka ❗ Nuitka does not work with Python installed via Microsoft Store. Install standalone Python. pip install nuitka
- Build Run the batch file or manually run:
nuitka --standalone --enable-plugin=tk-inter --windows-icon-from-ico=icon.ico frame_extractor_gui.py
Your .exe will be in the frame_extractor_gui.dist/ folder.
🧩 Use Cases Photogrammetry: Extract only sharp frames from a video for 3D model generation
Machine Learning: Generate clean datasets from footage
Surveillance: Archive only usable frames from long footage
📁 Frame Extractor/
├── frame_extractor_gui.py # Main application
├── icon.ico # App icon
├── build.bat / cleanup.bat # Build utilities
├── requirements.txt # Python dependencies
├── .gitignore # Clean repo
└── README.md # This file
🧑💻 Author Developed by @uhaop & chatgpt
📄 License MIT License