Scans through videos to find matching frames. Uses OpenCV for feature detection and PyQT 5 for UI. I originally wrote this to find the exact frame for a Slayers cel I purchased since I did not want to melt my eyes looking for it in a 70+ episode rewatch.
- Preview detected features/keypoints
- Adjust match threshold
- Scan through one video, or an entire series
- View potential matches while processing
See Releases
pip install -r requirements.txtpyuic5 findFrameMain.ui -o mainWindow.py; pyuic5 results.ui -o resultsWindow.pypython main.pypip install pyinstaller
pyinstaller --onefile --noconsole main.pyBuilt exe will be in 'dist' folder
- Increase source frame/image contrast to help with feature detection. Crop out stuff that might not be in the video. The detected features will be visible in the source frame thumbnail. Click to enlarge. The more features, the more the app has to search against. Also, making sure the aspect ratio is similar will help.
- Start with a low match threshold and bump it up until it doesn't think every frame is a match. Keep increasing until you stop getting too many false positives.
- Resizable main window
- Match "VU meter"
- Show FPS
- Show bigger image with keypoints after clicking thumbnail
- Find out what the hell filetypes cv2.VideoCapture supports
- Expose OpenCV matcher settings
- Process multiple files at a time (need a UI update for this). Increasing MAX_BATCH_SIZE will work, but the UI/progress bars won't be updated correctly.
- Built-in source frame image processing (brightness, contrast, cropping, etc.)

