Збільшення роздільної здатності зображення
Збільшуйте зображення у 2, 3 чи 4 рази за допомогою справжньої згортки Ланцоша або бікубічної інтерполяції — чесно порівняно з типовим білінійним масштабуванням браузера. Класичний ресемплінг, не ШІ.
Результат
Чимало сайтів обіцяють «ШІ-збільшення», яке нібито робить маленьке фото схожим на знімок з професійної камери. Цей інструмент чесніший: він збільшує зображення за допомогою справжніх, перевірених десятиліттями математичних алгоритмів ресемплінгу — тих самих, що використовувались у професійних редакторах зображень задовго до появи терміна «ШІ» — і показує, як це порівнюється з масштабуванням, яке ваш браузер уже виконує безкоштовно.
Реалізовано два справді різні алгоритми, а не один алгоритм із двома назвами. Ресемплінг Ланцоша використовує ядро на основі віконного sinc — sinc(x), помножений на sinc(x/a) у межах радіуса підтримки a=3 — що діє як майже ідеальний низькочастотний фільтр і дає найрізкіші, найконтрастніші краї з двох варіантів. Бікубічний ресемплінг використовує класичне ядро кубічної згортки Кіза (Keys, 1981) з a=-0.5 (еквівалентне сплайну Кетмулла-Рома) — кусково-кубічний поліном із радіусом підтримки 2, що дає плавніший, м'якіший результат із меншими артефактами дзвону біля різких країв. Обидва застосовуються як справжня сепарабельна згортка: спершу кожен рядок пересемплюється горизонтально, потім кожен стовпець — вертикально, з вагами ядра, обчисленими для кожного вихідного пікселя та нормалізованими так, щоб завжди сумувати до 1.
Для порівняння інструмент також рендерить те саме збільшення за допомогою типового масштабування drawImage самого браузера (imageSmoothingEnabled = true, якість за замовчуванням) — швидкого білінійного методу, до якого повертається будь-який canvas-інструмент, якщо не реалізує нічого кращого. Розміщення його поруч з обраним результатом Ланцоша чи бікубічної інтерполяції наочно показує цінність справжнього ресемплінгу: різкіші краї й менше розмиття при тій самій цільовій роздільності з тих самих вихідних пікселів.
Чого цей інструмент не робитиме — це вигадувати деталі, яких ніколи не було знято. Тут немає нейромережі, яка вгадує, як «мав би» виглядати розмитий клаптик волосся чи віддалений номерний знак — кожен вихідний піксель є математично визначеною зваженою комбінацією реальних вихідних пікселів. Оберіть 2x, 3x чи 4x, виберіть Ланцош або бікубічний алгоритм і завантажте результат як PNG у повній роздільності. Усе працює локально на власних API браузера Canvas 2D та ImageData — ваше зображення нікуди не завантажується.