User Story
As a video analysis user,
I want multiple frame comparison methods in extract_significant_frames
so that semantic changes between visually similar frames are captured more effectively.
Background
The current grayscale pixel difference method in VideoDescriber.extract_significant_frames (lines 33-49 of video_describer.py) only detects absolute pixel value changes. This fails to capture meaningful content changes when frames have similar brightness distributions but different color patterns or object movements (e.g., a red object turning blue while maintaining luminance). The existing threshold-based approach also lacks context-aware comparison capabilities.
Acceptance Criteria
User Story
As a video analysis user,
I want multiple frame comparison methods in
extract_significant_framesso that semantic changes between visually similar frames are captured more effectively.
Background
The current grayscale pixel difference method in
VideoDescriber.extract_significant_frames(lines 33-49 ofvideo_describer.py) only detects absolute pixel value changes. This fails to capture meaningful content changes when frames have similar brightness distributions but different color patterns or object movements (e.g., a red object turning blue while maintaining luminance). The existing threshold-based approach also lacks context-aware comparison capabilities.Acceptance Criteria
frame_story/video_describer.pyto implement:• Histogram comparison using OpenCV's
cv2.compareHistwith correlation method• Dense optical flow analysis via
cv2.calcOpticalFlowFarnebackmethodparameter toVideoDescriber.__init__with options:["grayscale" (default), "histogram", "optical_flow"]tests/test_video_describer.py:VideoDescriberinitialization