Згортка зображення
Застосуйте до зображення власне ядро згортки. Введіть матрицю ваг 3x3 або 5x5, необов’язковий дільник результату та зсув, який додається після цього, і інструмент застосує фільтр до кожного колірного каналу. Створюйте фільтри для підвищення різкості, розмиття, виявлення країв, тиснення та імітації руху, перевіряйте ядра з підручника або прототипуйте ідеї обробки зображень без написання коду.
Поширені запитання
Як ввести ядро?
Введіть 9 чисел для ядра 3x3 або 25 чисел для ядра 5x5, розділяючи їх пробілами, комами або розривами рядків, рядок за рядком, починаючи з верхнього лівого кута. Стандартне ядро 0 -1 0 / -1 5 -1 / 0 -1 0 — це класичне ядро підвищення різкості. Кожна вага має бути в межах від -1000 до 1000.
На що впливає масштаб?
Зважена сума кожного пікселя ділиться на масштаб перед додаванням зсуву. Якщо масштаб дорівнює стандартному значенню 0, інструмент використовує суму ядра, коли вона додатна, інакше — 1. Це зберігає загальну яскравість для ядер розмиття та підвищення різкості. Щоб нормалізувати ядро самостійно, можна ввести будь-який масштаб до 1000.
Для чого потрібен зсув?
Зсув у межах від -255 до 255 додається до кожного результату після масштабування. Ядра для виявлення країв і тиснення часто дають значення близько до нуля, тому зсув 128 переміщує їх до середнього сірого, де помітні як додатні, так і від’ємні відгуки. Результати поза діапазоном від 0 до 255 обрізаються.
З яких корисних ядер варто почати?
Для розмиття за усередненням використовуйте дев’ять одиниць, для гаусового розмиття — 1 2 1 / 2 4 2 / 1 2 1, для виявлення країв — -1 -1 -1 / -1 8 -1 / -1 -1 -1, а для тиснення — -2 -1 0 / -1 1 1 / 0 1 2. Для сильнішого розмиття використовуйте ядро 5x5 із двадцяти п’яти одиниць.
Чи застосовується фільтр до всіх каналів?
Ядро окремо застосовується до кожного колірного каналу, тому червоний, зелений і синій фільтруються однаково. Альфа-канал відокремлюється перед фільтрацією і відновлюється після неї, тож прозорість ніколи не розмивається і не підвищується її різкість. Результат зберігається як PNG.
Чому результат чорний або білий?
Якщо сума ваг ядра дорівнює нулю й зсув не використовується, однорідні ділянки стають чорними, оскільки їхній відгук дорівнює нулю. Якщо сума ваг велика й додатна, а масштаб надто малий, усе обрізається до білого. Використовуйте автоматичний масштаб або додайте зсув 128, щоб побачити весь діапазон відгуку.
Чи змінюється розмір зображення?
Ні, вихідне зображення має таку саму ширину й висоту, як і вхідне. Пікселі біля країв фільтруються з використанням доступних сусідніх пікселів. Перед фільтрацією зображення, у яких будь-яка сторона перевищує 4000 пікселів, зменшуються до потрібного розміру.
Які формати можна завантажувати?
Підтримуються зображення JPEG, PNG, GIF, WebP, TIFF і AVIF розміром до 5 MB, а анімовані файли використовують перший кадр. Відфільтроване зображення завантажується у форматі PNG без втрат.
Чому доступні лише ядра 3x3 і 5x5?
Ці два розміри охоплюють майже всі класичні фільтри й забезпечують швидку обробку кожного запиту навіть для великих зображень. Для сильнішого розмиття краще скористатися спеціальним інструментом розмиття, який використовує сепарабельний гаусів фільтр. Якщо потрібен ширший ефект, запустіть інструмент двічі.
Який рушій виконує згортку?
Інструмент використовує операцію convolve з бібліотеки sharp, створеної на базі libvips. Обчислення точно відповідають введеним вагам, і для однакового вхідного зображення завжди отримується однаковий результат.