Есть ли какая-либо реализация суперсэмплированного масштабирования ближайшего соседа?

Ближайший сосед — это широко используемый метод «фильтрации» для масштабирования пиксельной графики при отображении отдельных пикселей. Однако он плохо работает для масштабирования с неинтегральными коэффициентами. У меня возникла идея модификации, которая хорошо работает для неинтегральных коэффициентов, значительно превышающих исходный размер.

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

Линейный: для каждого выходного пикселя создайте градиент между двумя входными пикселями и сэмплируйте градиент.

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

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

Лучшее описание алгоритма находится по этой ссылке: Что такое лучший алгоритм уменьшения изображения (по качеству)? . Обратите внимание, что в URL-адресе упоминается уменьшение масштаба, которое потенциально может иметь более четырех пикселей на выходной пиксель. Однако масштабирование имеет максимум четыре входных пикселя на обрабатываемый выходной пиксель.

Есть ли какой-нибудь редактор изображений или утилита, поддерживающая средневзвешенное масштабирование?


person nyanpasu64    schedule 21.04.2014    source источник
comment
Так что именно вы спрашиваете?   -  person 500 - Internal Server Error    schedule 22.04.2014
comment
Взгляните на stackoverflow.com/questions/12526449/   -  person Mark Ransom    schedule 22.04.2014
comment
Да, это правильное описание алгоритма. Что отстойно, так это то, что он не популярен, у него нет стандартного названия и он не реализован ни в одном из известных мне фоторедакторов. Жаль, это лучший алгоритм масштабирования пиксельной графики в стиле ретро, ​​который я знаю, не считая размытых фекалий ((bi)/кубических/линейных фильтров) и scalex/hqx/xbr(z), которые не сохраняют пикселизацию. Может, мне стоит написать свою маленькую программку, как я сделал для xbrz/reverse-AA.   -  person nyanpasu64    schedule 22.04.2014
comment
Это называется Fant в литературе Microsoft. и CV_INTER_AREA (отношение площади) в OpenCV.   -  person rwong    schedule 22.04.2014
comment
Есть ли какой-нибудь редактор изображений или утилита, поддерживающая его?   -  person nyanpasu64    schedule 22.04.2014