CVD 0.8
|
A decorator class which wraps a VideoBuffer to return fields instead of the original frames (see also DeinterlaceFrame). More...
#include <deinterlacebuffer.h>
Public Types | |
enum | Fields { OddOnly, EvenOnly, OddEven, EvenOdd } |
A decorator class which wraps a VideoBuffer to return fields instead of the original frames (see also DeinterlaceFrame).
The majority of commands are passed straight through to the buffer that this class wraps, but get_frame() is overloaded to extract fields from the video frames.
Video intended for television use (i.e. from non-progressive scan cameras) tends to be interlaced. Instead of grabbing the entire frame at one time instant, the image is grabbed in two parts (fields), made up of the odd-numbered lines and the even-numbered lines respectively (thus giving an effective field-rate of twice the video frame-rate. Any fast motion in frame will therefore exhibit serrated distortion, with alternate lines out of step.
This class returns individual fields from the video, which are guaranteed to represent a single time instant. The VideoFrames returned from this buffer are therefore half the height of the original image, and so you might want to double the y-scale before displaying.
Provides frames of type CVD::DeinterlaceFrame and throws exceptions of type CVD::Exceptions::DeinterlaceBuffer
T | The pixel type of the original VideoBuffer Used to select which fields, and in which order, to extract from the frame |
Definition at line 77 of file deinterlacebuffer.h.
OddOnly |
Odd fields only. |
EvenOnly |
Even fields only. |
OddEven |
Both fields, presenting the odd lines from each frame first. |
EvenOdd |
Both fields, presenting the even lines from each frame first. |
Definition at line 79 of file deinterlacebuffer.h.