diff options
author | Tom Brazier <tom_github@firstsolo.net> | 2023-05-31 15:09:16 +0100 |
---|---|---|
committer | Tom Brazier <tom_github@firstsolo.net> | 2023-05-31 15:09:16 +0100 |
commit | 0081061e580c4933b0c7731496916df2cfc0a95c (patch) | |
tree | eeda4e2eb6a8087875702753ad5cefe08a44a895 /tracker-pt/module | |
parent | 98ab4962ba9a1940b8068af658def92e1fb64011 (diff) |
Added a slider to control the strength of the color matching for chroma key
Diffstat (limited to 'tracker-pt/module')
-rw-r--r-- | tracker-pt/module/point_extractor.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/tracker-pt/module/point_extractor.cpp b/tracker-pt/module/point_extractor.cpp index f62ea836..11a12d5e 100644 --- a/tracker-pt/module/point_extractor.cpp +++ b/tracker-pt/module/point_extractor.cpp @@ -167,32 +167,38 @@ void PointExtractor::color_to_grayscale(const cv::Mat& frame, cv::Mat1b& output) } case pt_color_red_chromakey: { - filter_single_channel(frame, 1, -0.5, -0.5, s.chroma_key_overexposed, output); + float non_key_coeff = -0.5 * *s.chroma_key_strength; + filter_single_channel(frame, 1, non_key_coeff, non_key_coeff, s.chroma_key_overexposed, output); break; } case pt_color_green_chromakey: { - filter_single_channel(frame, -0.5, 1, -0.5, s.chroma_key_overexposed, output); + float non_key_coeff = -0.5 * *s.chroma_key_strength; + filter_single_channel(frame, non_key_coeff, 1, non_key_coeff, s.chroma_key_overexposed, output); break; } case pt_color_blue_chromakey: { - filter_single_channel(frame, -0.5, -0.5, 1, s.chroma_key_overexposed, output); + float non_key_coeff = -0.5 * *s.chroma_key_strength; + filter_single_channel(frame, non_key_coeff, non_key_coeff, 1, s.chroma_key_overexposed, output); break; } case pt_color_cyan_chromakey: { - filter_single_channel(frame, -1, 0.5, 0.5, s.chroma_key_overexposed, output); + float non_key_coeff = -1.0 * *s.chroma_key_strength; + filter_single_channel(frame, non_key_coeff, 0.5, 0.5, s.chroma_key_overexposed, output); break; } case pt_color_yellow_chromakey: { - filter_single_channel(frame, 0.5, 0.5, -1, s.chroma_key_overexposed, output); + float non_key_coeff = -1.0 * *s.chroma_key_strength; + filter_single_channel(frame, 0.5, 0.5, non_key_coeff, s.chroma_key_overexposed, output); break; } case pt_color_magenta_chromakey: { - filter_single_channel(frame, 0.5, -1, 0.5, s.chroma_key_overexposed, output); + float non_key_coeff = -1.0 * *s.chroma_key_strength; + filter_single_channel(frame, 0.5, non_key_coeff, 0.5, s.chroma_key_overexposed, output); break; } case pt_color_hardware: |