caffe resize用interpolation

opencv的resize默认的是使用双线性插值INTER_LINEAR,也可以是尝试其他的方式进行插值操作

if (param.random_interpolation_method()) {
    // 0: INTER_NEAREST
    // 1: INTER_LINEAR
    // 2: INTER_CUBIC
    // 3: INTER_AREA
    // 4: INTER_LANCZOS4
    int interpolation = caffe_rng_rand() % 5;
    cv::resize(cv_img_origin, img, cv::Size(new_width, new_height), 0, 0,
        interpolation);
  } else if (param.use_self_resize_fun()) {
    // TODO(kun): resize_model() now is not well verified.
    // When use_self_resize_fun, we consider cv::resize() just in case.
    if (caffe_rng_rand() % 2) {
      cv::resize(cv_img_origin, img, cv::Size(new_width, new_height));
    } else {
      img = cv::Mat(new_height, new_width, cv_img_origin.type());
      int mode = caffe_rng_rand() % 2;
      resize_model(img.data, cv_img_origin.data,
          cv_img_origin.cols, cv_img_origin.rows,
          new_width, new_height, NULL, mode);
    }
  } else {  // Resize using INTER_LINEAR
    cv::resize(cv_img_origin, img, cv::Size(new_width, new_height));
  }

猜你喜欢

转载自www.cnblogs.com/ymjyqsx/p/9167749.html