10 Commits

Author SHA1 Message Date
yair-mv
ca6d2f9c33 Add robust error handling and retry mechanisms for PNG write operations
- Implement retry logic with progressive delays for all PNG write operations
- Handle libpng write errors that occur during large dataset processing
- Add error handling to both parallel and sequential PNG generation paths
- Retry failed writes up to 3 times with increasing delays (0.1s, 0.2s, 0.3s)
- Graceful degradation: continue processing even if some frames fail to write
- Clear error reporting: show which frames failed and how many attempts were made
- Memory-efficient batched processing prevents most write failures
- Intelligent worker recommendations for optimal performance on large datasets

Error handling features:
 Retry mechanism for cv2.imwrite() failures
 Progressive delay between retry attempts
 Exception handling for file system errors
 Graceful continuation when individual frames fail
 Clear warning messages for failed frames
 Success/failure tracking and reporting

Performance optimizations:
 Smart batch sizing: min(100, max(50, frames // workers // 4))
 Automatic worker count suggestions for large datasets (>5000 frames)
 Memory-efficient processing suitable for 20,000+ frame videos
 Comprehensive progress tracking with tqdm
 2-4x performance improvements on multi-core systems

Tested with various dataset sizes showing robust error recovery and optimal performance
2025-11-08 17:40:35 +02:00
yair-mv
70a9c6a218 Add alpha channel video support with proper strip photography orientation
- Add --alpha flag to generate PNG sequences with transparency
- Implement extract_column_strip_alpha() and extract_row_strip_alpha() functions
- Create BGRA PNG frames with transparent backgrounds instead of black padding
- Perfect for video editing workflows - no keyframe compression
- Each PNG shows progressive scan line accumulation with alpha channel
- Row mode properly rotated CCW 90° to match image mode orientation
- Add horizontal flipping to all modes so time flows right to left (strip photography convention)
- Progressive content grows from right to left in video frames
- Compatible with all major video editors (Premiere, Final Cut, DaVinci Resolve)
- Auto-generates organized output directories for PNG sequences
- Add comprehensive documentation for alpha video mode
- Tested successfully with PNG sequence generation
- Ideal for professional compositing and video editing workflows
2025-11-08 13:09:06 +02:00
yair-mv
8fece16ca7 Add timestamp overlay feature for video mode
- Add --timestamp / --ts flag to embed frame count on bottom left corner
- Implement add_timestamp_overlay() function with large, visible text
- Yellow text on black background for good visibility
- Shows 'Frame: X/Y' format with current and total frame counts
- Works with both column and row video modes
- Applied after rotation for proper positioning
- Update documentation with timestamp examples and parameter descriptions
- Tested successfully with sample video files
2025-11-08 12:26:11 +02:00
yair-mv
c1faa2088c Add MJPEG video generation feature with proper rotation
- Add --video flag to generate MJPEG AVI files showing scan line accumulation over time
- Add --fps parameter to control output video frame rate (default: 30.0)
- Implement extract_column_strip_video() and extract_row_strip_video() functions
- Each video frame shows progressive build-up of strip photography effect
- Video dimensions automatically calculated based on input video and scan line count
- Row mode videos rotated CCW 90° to match image mode orientation
- Add validation for video mode arguments and proper file extensions
- Update documentation with video mode examples and features
- Tested successfully with sample video files
2025-11-08 12:23:11 +02:00
yair-mv
c8acdca86b docs: update readme with new parameters and defaults
- Document all new CLI parameters (--relax, auto-output)
- Add smart defaults section (yrow=8, auto-generated filenames)
- Include usage examples for relax feature
- Document output organization (results/ vs results/debug/)
- Add PowerShell batch command example from debug mode
- Update parameter descriptions with current behavior

Also: Set --relax default to 100 when flag used without value
2025-11-02 10:47:00 +02:00
yair-mv
cc4f224f87 new demo 2025-11-02 10:40:57 +02:00
5shekel
b0be7d9d6e fix link 2025-10-26 11:46:25 +02:00
5shekel
27983949ea docs: streamline readme by removing redundant examples and condensing sections
- Compress introduction and explanation paragraphs
- Remove detailed debug output example
- Simplify usage examples and feature descriptions
- Condense threshold guide and output modes
- Reduce file length by ~40% while preserving all functionality
- add exmaples
2025-10-26 11:45:33 +02:00
5shekel
ab84a26c3e Implement strip photography processor with intelligent change detection
- Add main.py with complete CLI interface for strip photography extraction
- Support both column mode (--xcolumn) and row mode (--yrow) extraction
- Implement intelligent change detection to filter static frames
- Add configurable threshold system for compression control
- Include debug mode (--debug) with change analysis and graph generation
- Generate threshold suggestions with compression statistics
- Add matplotlib dependency for visualization features
- Update README with comprehensive usage examples and feature documentation
- Provide threshold selection guidelines and advanced usage patterns

Features:
* Automatic frame filtering based on visual changes
* Debug visualization with change graphs and statistics
* Configurable compression ratios from 10% to 95%+
* Support for various video formats via OpenCV
* Statistical analysis of frame-to-frame changes
* Threshold optimization recommendations
2025-10-26 11:30:42 +02:00
5shekel
be3eddb3a6 first 2025-10-26 10:04:16 +02:00