31 int cell_w,
int cell_h,
32 T invalid_value, T kappa1, T kappa2, T kappa3,
33 T rtol,
size_t max_iter):
m_image(image),
52 for (
int y = 0; y <
m_mode->getHeight(); ++y) {
53 for (
int x = 0; x <
m_mode->getWidth(); ++x) {
60 for (
int y = 0; y <
m_mode->getHeight(); ++y) {
61 for (
int x = 0; x <
m_mode->getWidth(); ++x) {
93 auto atol = (ref_bin.second - ref_bin.first) * 0.1;
95 T mean, median, sigma;
97 T prev_sigma = sigma * 10;
101 for (
size_t iter = 0; iter < m_max_iter && sigma >
atol && std::abs(sigma / prev_sigma - 1.0) >
m_rtol; ++iter) {
109 if (std::abs(sigma) == 0) {
113 else if (std::abs((mean - median) / sigma) < 0.3) {
114 mode = 2.5 * median - 1.5 * mean;