Какие алгоритмы использовать для уменьшения изображения?

StackOverflow https://stackoverflow.com/questions/3086770

Вопрос

Какие алгоритмы использовать для уменьшения изображения?

Что быстрее?

Какой алгоритм выполняется для размера изображений (специально сокращается от Big 600x600, чтобы Super Small 6x6, например) такими гигантами как Flash и Silver Player, и HTML5?

Это было полезно?

Решение

Билинеар является наиболее широко используемым методом и может быть сделан для запуска как быстрее, так как ближайший соседний алгоритм отбора проб, который является самым быстрым, но наименее точным.

Беда с наивной реализацией билинейной выборки заключается в том, что если вы используете его, чтобы уменьшить изображение более чем в половине, вы можете столкнуться с азриазямингами артефактов, похожих на то, что вы столкнулись с ближайшим соседом. Решением этого является использование подхода на основе пирамиды. В основном, если вы хотите уменьшить 600x600 до 30x30, вы сначала снижаются до 300x300, затем 150x150, затем 75x75, затем 38x38, и только тогда используйте билинейный для уменьшения до 30x30.

При одновременном снижении образа к половине, алгоритм билинейного отбора проб становится намного проще. В основном для каждой чередующейся строки и столбца пикселей:

y[i/2][j/2] = (x[i][j] + x[i+1][j] + x[i][j+1] + x[i+1][j+1]) / 4;

Другие советы

Существует один из особого случая: сокращение JPG более чем в 8 раз. Прямой коэффициент 8 вкратце может быть проведен на данных RAW JPG, не разлагая его. JPG хранятся как сжатые блоки 8x8 пикселей, со средним значением пикселей первым. В результате его обычно требуется больше времени, чтобы прочитать файл с диска или сеть, чем его добраться.

Обычно я бы придерживался билинейной фильтра для масштабирования. Для изменения размера изображений к крошечный Размеры, хотя, вы можете быть удачи. Большинство значков являются пиксель, отредактированные вручную, чтобы они выглядели лучше всего.

Здесь Это хороший ресурс, который объясняет концепции довольно хорошо.

Есть отличный статья В проекте кода показывая эффекты различных изображений фильтров.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top