22 const float acceptance = settings_->
t1;
23 const float cutoff = settings_->
t2;
26 const float *in_image = it.in(0);
27 const float *in_key = it.in(1);
37 const float image_cb = (in_image[1] * 2.0f) - 1.0f;
38 const float image_cr = (in_image[2] * 2.0f) - 1.0f;
41 const float key_cb = (in_key[1] * 2.0f) - 1.0f;
42 const float key_cr = (in_key[2] * 2.0f) - 1.0f;
44 const float theta = atan2(key_cr, key_cb);
47 const float x_angle = image_cb *
cosf(theta) + image_cr *
sinf(theta);
48 const float z_angle = image_cr *
cosf(theta) - image_cb *
sinf(theta);
52 const float kfg = x_angle - (
fabsf(z_angle) /
tanf(acceptance / 2.0f));
55 const float beta = atan2(z_angle, x_angle);
56 float alpha = 1.0f - (kfg / gain);
64 it.out[0] = alpha < in_image[3] ? alpha : in_image[3];
67 it.out[0] = in_image[3];