summaryrefslogtreecommitdiffhomepage
path: root/tracker-pt/module
diff options
context:
space:
mode:
authorTom Brazier <tom_github@firstsolo.net>2023-05-31 15:09:16 +0100
committerTom Brazier <tom_github@firstsolo.net>2023-05-31 15:09:16 +0100
commit0081061e580c4933b0c7731496916df2cfc0a95c (patch)
treeeeda4e2eb6a8087875702753ad5cefe08a44a895 /tracker-pt/module
parent98ab4962ba9a1940b8068af658def92e1fb64011 (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.cpp18
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: