У меня есть холст three.js, на который я загрузил изображение с разрешением 2730x4096.Я дал возможность загружать изображения с различными разрешениями с холста.Когда я загружаю изображение с более низким разрешением - скажем, изображение 960x1440, я получаю очень размытое изображение с неровными краями.
Я попытался увеличить резкость, установив анизотропию на максимум (16 в моем случае), а также попытался использовать карту.minFilter = THREE.LinearFilter, который также увеличил резкость изображения, но края по-прежнему зазубрины.
Я пытался запустить его через FXAA-композитор сглаживания, но сглаживание не очень хорошее.Может быть, я не даю правильные параметры.Все время, пока активен сглаживание от рендерера (renderer.antialias = true)
Когда я пытаюсь сделать то же самое в opencv, я использовал интерполяцию cv2.INTER_AREA для уменьшения изображения 2730x4096, которое дает мне очень четкие изображения сабсолютно без зазубренных краев.
Поэтому я подумал, что реализация интерполяции INTER_AREA для minFilter вместо THREE.LinearFilter может привести к лучшим результатам.Есть ли что-то уже существующее в three.js, которое я не использую, или, если мне нужно использовать этот новый метод интерполяции, как это сделать?
Иллюстрация: два файла PFA - один файл загружается с помощьюХолст Three.js напрямую с разрешением 960x1440 (нижнее), а другое - это изображение, которое было уменьшено с 2730x4096 до 960x1440 с использованием opencv (верхнее).На уменьшенном изображении opencv детали более четкие, а края чище, чем на изображении three.js.Я начинаю верить, что это из-за интерполяции INTER_AREA для сокращения в opencv.Это воспроизводимое в three.js?
Исходное изображение высокого разрешения можно загрузить с здесь