Я хочу з'ясувати, який алгоритм найкращий, який можна використовувати для зменшення розміру растрової картинки. З найкращим я маю на увазі той, який дає найкращі результати. Я знаю про бікубік, але чи є щось краще ще? Наприклад, я чув від деяких людей, що Adobe Lightroom має якийсь власний алгоритм, який дає кращі результати, ніж стандартний бікубічний, який я використовував. На жаль, я хотів би сам використовувати цей алгоритм у своєму програмному забезпеченні, тому ретельно охороняється комерційна таємниця Adobe не допоможе.
Додано:
Я перевірив Paint.NET і, на мій подив, здається, що Super Sampling краще, ніж bicubic при зменшенні розміру зображення. Це змушує мене задуматись, чи не потрібні взагалі алгоритми інтерполяції.
Це також нагадало мені алгоритм, який я сам "винайшов", але ніколи не реалізовував. Я припускаю, що у нього також є назва (оскільки щось таке тривіальне не може бути ідеєю лише мене), але я не зміг знайти його серед популярних. Супер вибірка була найближчою.
Ідея полягає в наступному - для кожного пікселя в цільовому зображенні підрахуйте, де він знаходився б на вихідному зображенні. Ймовірно, він би накладав один або кілька інших пікселів. Тоді можна було б розрахувати площі та кольори цих пікселів. Потім, щоб отримати колір цільового пікселя, можна просто обчислити середнє значення цих кольорів, додавши їх площі як "ваги". Отже, якби цільовий піксель покривав 1/3 жовтого вихідного пікселя та 1/4 зеленого вихідного пікселя, я отримав би (1/3 * жовтий + 1/4 * зелений) / (1/3 + 1/4).
Це, природно, було б досить обчислювально, але воно повинно бути якомога ближче до ідеалу, ні?
Чи існує назва цього алгоритму?