double d = B_Imag.at<double>(i, j);
if (flag)
{
R_Real.at<double>(i, j) = (a * c + b * d) / (c * c + d * d + 0.000001);
R_Imag.at<double>(i, j) = (b * c - a * d) / (c * c + d * d + 0.000001);
}
else
{
R_Real.at<double>(i, j) = a * c - b * d;
R_Imag.at<double>(i, j) = b * c + a * d;
}
}
}
merge(planes, dst);
}
void STCTracker::getCxtPriorPosteriorModel(const Mat image)
{
CV_Assert(image.size == cxtPriorPro.size);
double sum_prior(0), sum_post(0);
for (int i = 0; i < cxtRegion.height; i++)
{
for (int j = 0; j < cxtRegion.width; j++)
{
double x = j + cxtRegion.x;
double y = i + cxtRegion.y;
double dist = sqrt((center.x - x) * (center.x - x) + (center.y - y) * (center.y - y));
cxtPriorPro.at<double>(i, j) = exp(- dist * dist / (2 * sigma * sigma));
sum_prior += cxtPriorPro.at<double>(i, j);