border_size = 16;
use_mean_normalization = true;
use_spatial_propagation = true;
+ coarsest_scale = 10;
/* Use separate variational refinement instances for different scales to avoid repeated memory allocation: */
int max_possible_scales = 10;
+ ws = hs = w = h = 0;
for (int i = 0; i < max_possible_scales; i++)
variational_refinement_processors.push_back(VariationalRefinement::create());
}
sum_Uy += coef * Sy_ptr[is * dis->ws + js];
sum_coef += coef;
}
+ CV_DbgAssert(sum_coef != 0);
Ux_ptr[i * dis->w + j] = sum_Ux / sum_coef;
Uy_ptr[i * dis->w + j] = sum_Uy / sum_coef;
}
int red_even_len, red_odd_len;
int black_even_len, black_odd_len;
+ RedBlackBuffer();
void create(Size s);
void release();
};
}
}
+VariationalRefinementImpl::RedBlackBuffer::RedBlackBuffer()
+{
+ release();
+}
void VariationalRefinementImpl::RedBlackBuffer::create(Size s)
{
/* Allocate enough memory to include borders */
{
red.release();
black.release();
+ red_even_len = red_odd_len = black_even_len = black_odd_len = 0;
}
VariationalRefinementImpl::ParallelOp_ParBody::ParallelOp_ParBody(VariationalRefinementImpl &_var, vector<Op> _ops,