Colorspace Manipulation for VideoCapture Gears¶
Source ColorSpace manipulation¶
All VidGear's Videocapture Gears (namely CamGear, ScreenGear, VideoGear) and some Streaming Gears (namely WebGear, WebGear_RTC) and Network Gears (Client's end) - provides exclusive internal support for Source Color Space manipulation.
There are two ways to alter source colorspace:
Using colorspace parameter¶
Primarily, the safest way is by colorspace (string) parameter of the respective VideoCapture API, that can be used to easily alter the colorspace of the input source, during initialization. But on the downside, colorspace parameter value CANNOT be changed/altered at runtime.
All possible values for this parameter are discussed below âž¶
Using color_space global variable¶
Alternatively, a more direct approach is by using color_space (integer) global variable the respective VideoCapture API, can be used for directly changing the source colorspace at runtime. It can be used in conjunction with colorspace parameter easily.
Supported Colorspace Conversions
Any conversion from default Source colorspace (i.e. BGR in case of OpenCV), to any other colorspace and vice-versa (use None to revert), is supported.
Important Information
-
Using
color_spaceglobal variable is NOT Supported in VideoGear API, calling it will result inAttribueError. -
Any incorrect or None-type value, will immediately revert the colorspace to default (i.e.
BGR). -
Using
color_spaceglobal variable with Threaded Queue Mode may have minor lag, User discretion is advised.
It is advised to enable logging(logging = True) on the first run for easily identifying any runtime errors.
Supported colorspace parameter values¶
All supported string values for colorspace parameter are as follows:
You can check all OpenCV Colorspace Conversion Codes here âž¶.
| Supported Conversion Values | Description |
|---|---|
| COLOR_BGR2BGRA | BGR to BGRA |
| COLOR_BGR2RGBA | BGR to RGBA |
| COLOR_BGR2RGB | BGR to RGB backward conversions to RGB/BGR |
| COLOR_BGR2GRAY | BGR to GRAY |
| COLOR_BGR2BGR565 | BGR to BGR565 |
| COLOR_BGR2BGR555 | BGR to BGR555 |
| COLOR_BGR2XYZ | BGR to CIE XYZ |
| COLOR_BGR2YCrCb | BGR to luma-chroma (aka YCC) |
| COLOR_BGR2HSV | BGR to HSV (hue saturation value) |
| COLOR_BGR2Lab | BGR to CIE Lab |
| COLOR_BGR2Luv | BGR to CIE Luv |
| COLOR_BGR2HLS | BGR to HLS (hue lightness saturation) |
| COLOR_BGR2HSV_FULL | BGR to HSV_FULL |
| COLOR_BGR2HLS_FULL | BGR to HLS_FULL |
| COLOR_BGR2YUV | BGR to YUV |
| COLOR_BGR2YUV_I420 | BGR to YUV 4:2:0 family |
| COLOR_BGR2YUV_IYUV | BGR to IYUV |
| COLOR_BGR2YUV_YV12 | BGR to YUV_YV12 |
| None | Back to default colorspace (i.e. BGR) |
Usage examples¶
Using CamGear with Direct Colorspace Manipulation¶
The complete usage example can be found here âž¶
Using PiGear with Direct Colorspace Manipulation¶
The complete usage example can be found here âž¶
Using VideoGear with Colorspace Manipulation¶
The complete usage example can be found here âž¶
Using ScreenGear with Direct Colorspace Manipulation¶
The complete usage example can be found here âž¶