Based on mathematical calculations from each frame its MSE (mean squared error) is changing differently from frame to frame.
So when a reflection object moves in the video we were able to remove it from the frame,
because that amount of pixels is a sum of the Reflection + Transmission (which assumed to be not moving).
Then taking the minimum values from each pixel in a window size of X number we were able to remove it.
A video can be shaky when taken. so in order to fix that we had to stabilize it (which was the more challenging part).
So:
- Stabilize Video
- Remove Reflection
- Subtract (Origin Video - Transmission Video) == Reflection Video
pipenv install git+https://github.com/BenK93/OpenCV-Reflection-Seperation.git#egg=video_separation
Reflection | Origin | Transmission |
---|---|---|