From 0081061e580c4933b0c7731496916df2cfc0a95c Mon Sep 17 00:00:00 2001 From: Tom Brazier Date: Wed, 31 May 2023 15:09:16 +0100 Subject: Added a slider to control the strength of the color matching for chroma key --- tracker-pt/module/point_extractor.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'tracker-pt/module') 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: -- cgit v1.2.3