Может ли OpenCV cv::resize() изменить минимальное и максимальное значения изображения? (Используя метод INTER_LINEAR)
Допустим, у меня есть изображение в оттенках серого (размер 640 × 480) с минимальной интенсивностью пикселей = 23 и максимальной интенсивностью = 245.
Если я изменить его размер, используя cv::resize()
с INTER_LINEAR
до 1920×1080, могут ли изменяться минимальная и максимальная интенсивность? Моя минимальная интенсивность стала 25, а максимальная - 247. Возможно ли неправильное использование, которое ведет к этому?
Можно ли ограничить cv::resize
изменить размер только в пределах минимальных значений?
Я попытался нормализовать изображение после изменения размера с NORM_MINMAX
и исходные значения min max, но результаты не выглядят одинаково. У меня нет возможности использовать INTER_NEAREST
, Это выглядит очень размытым.
Я хочу сохранить исходные минимальные максимальные значения, но изменить их размер с помощью INTER_LINEAR. Является ли это возможным?
1 ответ
Нет, по моему мнению, невозможно сохранить значения min / max любыми методами, использующими интерполяцию. См. Билинейная интерполяция для получения дополнительной информации и понимания, почему минимальные / максимальные значения могут больше не присутствовать в измененном изображении.
Если вы хотите сохранить исходные минимальные и максимальные значения, вам придется проводить обработку вручную без какой-либо гарантии, что визуальный результат будет хорошим.
Возможное решение:
- одно изображение изменено с
INTER_LINEAR
- еще один с
INTER_NEAREST
- слияния двух изображений:
I_res(i,j)=I_near(i,j)
когдаI_near(i,j)==min or max
I_res(i,j)=I_linear(i,j)
иначе
Но, таким образом, вы возитесь с формулой, используемой для линейной интерполяции.