Я пытаюсь изменить размер набора изображений с помощью OpenCV. Разрешение правильное, но качество изображения ухудшается. Однако, если я сделаю ручной размер с помощью Apple Preview, качество изображения не будет затронуто. Я делаю все эти изображения меньше, вместо того, чтобы их раздувать. Вот два изображения, сравнивающие качество. Обратите внимание на неровные спиц и зазубренный верхней трубы велосипеда:OpenCV resize quality
Bad Resize:
Хорошо изменения размера:
Вот мой код:
cv::Mat srcimg = cv::imread(src_filepath);
cv::Mat destimg = cv::imread(lowres_path);
cv::Size img_size = srcimg.size();
int img_width = img_size.width;
int img_height = img_size.height;
double percentage = 1000.0/(img_width);
double new_height = img_height * percentage;
cv::Size new_size = cv::Size(1000.0, new_height);
cv::resize(srcimg, destimg, new_size,0,0,CV_INTER_LANCZOS4);
cv::imwrite(lowres_path, destimg);
Я испортил с интерполяцией, но это, похоже, не влияет на изображение.
Вы также можете опубликовать исходное изображение? –
@ DanMašek: http://i.imgur.com/HYGvpSY.jpg – pnus
Согласно документам: «Чтобы сжать изображение, оно будет выглядеть лучше всего с помощью интерполяции CV_INTER_AREA». Вы попробовали это? Для меня это выглядит намного лучше, чем с интерполяцией Ланцоша. –