- } else if (!(fit_size_x == -1 && fit_size_y == -1)) {
- if (fit_size_x % p_cell_size != 0 || fit_size_y % p_cell_size != 0) {
- std::cerr << "Error: Fit size is not multiple of HOG cell size (" << p_cell_size << ")" << std::endl;
- std::exit(EXIT_FAILURE);
- }
- p_fit_factor_x = (double)fit_size_x / round(p_init_pose.w * (1. + p_padding));
- p_fit_factor_y = (double)fit_size_y / round(p_init_pose.h * (1. + p_padding));
- std::cout << "resizing image horizontaly by factor of " << p_fit_factor_x << " and verticaly by factor of "
- << p_fit_factor_y << std::endl;
- p_fit_to_pw2 = true;
- p_init_pose.scale_x(p_fit_factor_x);
- p_init_pose.scale_y(p_fit_factor_y);
- if (fabs(p_fit_factor_x - 1) > p_floating_error || fabs(p_fit_factor_y - 1) > p_floating_error) {
- if (p_fit_factor_x < 1 && p_fit_factor_y < 1) {
- cv::resize(input_gray, input_gray, cv::Size(0, 0), p_fit_factor_x, p_fit_factor_y, cv::INTER_AREA);
- cv::resize(input_rgb, input_rgb, cv::Size(0, 0), p_fit_factor_x, p_fit_factor_y, cv::INTER_AREA);
- } else {
- cv::resize(input_gray, input_gray, cv::Size(0, 0), p_fit_factor_x, p_fit_factor_y, cv::INTER_LINEAR);
- cv::resize(input_rgb, input_rgb, cv::Size(0, 0), p_fit_factor_x, p_fit_factor_y, cv::INTER_LINEAR);
- }
- }