Алгоритмы для дискретизации изображения?

10

Бикубическая выборка довольно хороша для увеличения выборки изображения и увеличения его размера, но является ли это хорошим выбором и для понижающей выборки? Есть ли лучший выбор?

Алан Вульф
источник
1
Эти две старые статьи из The Inner Product рассказывают о фильтрах для создания mipmap, которые могут быть вам полезны : Link1 , link2 .
Гламперт

Ответы:

12

Когда Шон и я написали stb_image_resize, мы выбрали Митчелла для сокращения. Mitchell похож на Cubic, вы можете прочитать о кубическом классе фильтров выборки в Mitchell Netravali 1988 . Все они очень похожи, и вы получите очень похожие результаты.

Я не могу найти никаких письменных записей между Шоном и мной о том, почему мы решили пойти с Митчеллом, но если память служит, мы просто пересчитали кучу изображений и использовали алгоритм, который, по нашему мнению, выглядел лучше. Я бы не сказал, что существует один авторитетный или лучший фильтр, вы должны использовать тот, который лучше всего выглядит в ваших данных.

Редактировать: Как говорит joojaa, оконный фильтр sinc также хорош, если не совсем так дешево. Вы можете найти некоторые реализации здесь .

Хорхе Родригес
источник
3
Существует авторитетно лучший фильтр, это бесконечно широкий фильтр sinc. Его просто невозможно использовать. До этого времени Lanczos Windowed Sinc является хорошей альтернативой michell
Joojaa
Для справки есть также инструменты для работы с изображениями Nvidia .
Гламперт
Если вы используете фильтр типа «кубический esque» или «lanczos», эти парни одинаково хорошо работают для увеличения, как и для уменьшения?
Алан Вулф
Я не пробовал Lanczos, поэтому я не могу говорить об этом. Мы выбрали catmull-rom для апскейлинга, который является кубическим, и он работал хорошо.
Хорхе Родригес