Посібник із виправлення перспективи
Коли ви спрямовуєте камеру вгору, щоб зняти високу будівлю, або нахиляєте телефон, щоб сфотографувати дошку, ви створюєте оптичне явище, відоме як трапецеїдальне спотворення.
Коли ви спрямовуєте камеру вгору, щоб зняти високу будівлю, або нахиляєте телефон, щоб сфотографувати дошку, ви створюєте оптичне явище, відоме як трапецеїдальне спотворення. Це викривлення перспективи виникає через те, що площина сенсора камери не паралельна поверхні об'єкта. Замість паралельних вертикальних ліній ви отримуєте лінії, що сходяться до точки зникнення, через що прямокутні структури виглядають як трапеції.
Ручне виправлення зазвичай вимагає дорогого програмного забезпечення для настільних комп'ютерів і виснажливого налаштування контрольних точок.
Що вам потрібно
Щоб скористатися цим інструментом, вам потрібен лише сучасний веб-браузер і файл цифрового зображення, на якому є викривлення перспективи. Інструмент працює безпосередньо через інтерфейс браузера, усуваючи необхідність встановлення важких програм для графічного дизайну або утиліт командного рядка.
Ваше вихідне зображення має бути в одному з підтримуваних растрових форматів: JPG, JPEG, PNG або WEBP. Ці формати зберігають дані зображення в піксельній сітці, що дозволяє алгоритмам трансформації точно відображати координати. Крім того, ваш файл повинен відповідати обмеженню за розміром; файли понад 20 МБ перевищують підтримуваний ліміт.
Оскільки інструмент працює за допомогою моделі на основі WebAssembly, браузер обробляє всі дані локально — не потрібно з'єднання з сервером, щоб браузер взаємодіяв з libvips. Вам не потрібні спеціальні знання проективної геометрії або матричних перетворень. Інструмент автоматично виконує складні математичні розрахунки, вимагаючи лише стандартний файл зображення для початку обробки.
Браузер керує інтерфейсом і передачею файлів, тоді як libvips виконує глибоке перетворення координат.
Виправлення перспективи
Запустіть улюблений веб-браузер на комп'ютері або мобільному пристрої та перейдіть до інтерфейсу інструмента Perspective Fix. Переконайтеся, що ваш браузер оновлено до останньої версії для повної сумісності. Знайдіть файл зображення на локальному диску.
Клацніть правою кнопкою миші на файл і перевірте його властивості, щоб переконатися, що він збережений у підтримуваному форматі (JPG, JPEG, PNG або WEBP) і його розмір не перевищує 20 МБ. Клацніть область завантаження, щоб відкрити файловий менеджер, виберіть зображення та натисніть «Відкрити». Крім того, ви можете перетягнути цільовий файл із локальної папки безпосередньо в призначену область завантаження у вікні браузера.
Після завершення завантаження браузер завантажує дані зображення в локальну пам'ять для libvips. libvips автоматично починає аналізувати структуру зображення, скануючи піксельну сітку для виявлення домінуючих горизонтальних і вертикальних ліній, що визначають сітку перспективи. libvips застосовує матрицю гомографії для викривлення координат зображення, вирівнюючи лінії, що сходяться, назад у паралельні шляхи.
Цей процес працює на архітектурі WebAssembly, що забезпечує високу швидкість обробки без виснаження ресурсів вашої системи. Інтерфейс відображає вирівняне зображення, показуючи, як лінії, що сходяться, тепер проходять паралельно природному горизонту та вертикальним осям. Збільште масштаб, щоб перевірити прямість країв навколо архітектурних елементів.
Браузер отримує оброблені дані зображення від libvips і зберігає новий виправлений файл безпосередньо у вашу локальну папку завантажень. Вихідний файл зберігає оригінальний формат і роздільну здатність.
Як це працює
Виправлення перспективи базується на принципах проективної геометрії. Коли тривимірна сцена проектується на двовимірний сенсор камери під кутом, паралельні лінії здаються такими, що зустрічаються в точках зникнення. Щоб усунути це оптичне спотворення, libvips має обчислити математичне відношення, відоме як гомографія.
Процес починається, коли ви завантажуєте файл. libvips аналізує зображення для виявлення структурних країв. Він використовує алгоритми виявлення ліній для ідентифікації довгих безперервних шляхів з високим контрастом, які зазвичай представляють фізичні межі, такі як стіни, колони або горизонти.
Обчислюючи математичні перетини цих ліній, libvips визначає положення точок зникнення.
Після встановлення точок зникнення libvips створює матрицю трансформації 3 на 3. Ця матриця відображає спотворені координати оригінального зображення на нову плоску поверхню. Оскільки це відображення розтягує та стискає різні ділянки зображення, libvips має обчислити нові значення пікселів для порожніх просторів, створених під час викривлення.
Він робить це за допомогою білінійної або бікубічної інтерполяції, аналізуючи сусідні пікселі для створення плавних переходів і підтримки високої точності зображення.
Весь цей процес керується через архітектуру на основі WebAssembly. Браузер керує інтерфейсом користувача, передачею файлів і отриманням завантажень, тоді як libvips виконує обчислювально інтенсивні матричні розрахунки. Цей розподіл гарантує, що ваш локальний браузер не перестане відповідати, навіть під час обробки зображень високої роздільної здатності, які потребують мільйонів індивідуальних перерахунків пікселів.
Кінцевим результатом є геометрично виправлене зображення, де всі прямі лінії об'єкта проходять паралельно та природно. libvips упаковує цю виправлену піксельну сітку назад у вибраний вами вихідний формат (JPG, JPEG, PNG або WEBP) і доставляє файл у ваш браузер для негайного завантаження.
Коли щось йде не так
Файл не вдається завантажити: Ваш файл перевищує підтримуваний ліміт розміру 20 МБ. libvips застосовує це обмеження. Файли, що перевищують підтримуваний розмір, не будуть оброблені.
Коли libvips розпаковує зображення для створення піксельної сітки, вихідний файл розміром 20 МБ може розширитися до понад 100 МБ необроблених даних пікселів. Перевірте розмір файлу та зменште роздільну здатність вихідного зображення перед завантаженням.
Виправлене зображення виглядає спотвореним або розтягнутим: Це відбувається, коли вихідному зображенню бракує чітких горизонтальних або вертикальних опорних ліній. libvips покладається на виявлення архітектурних країв, горизонтів або структурних меж для обчислення точок зникнення. Якщо ви завантажите фотографію природного ландшафту без прямих ліній, libvips не зможе визначити правильну сітку перспективи.
Він застосовує трансформацію за найкращим припущенням, яка може неприродно викривити зображення. Щоб уникнути цього, використовуйте інструмент для зображень, що містять будівлі, знаки, дверні рами або інші геометричні елементи.
Вихідний файл має білі або чорні трикутні межі: Коли libvips обертає та перераховує координати пікселів, він змінює форму оригінальної прямокутної рамки. Нове виправлене зображення має бути обрізане або доповнене, щоб поміститися в стандартний прямокутний контейнер. Якщо виправлення перспективи є екстремальним, краї рамки більше не збігаються з оригінальними прямокутними межами, залишаючи порожній простір, який libvips заповнює суцільним кольором фону.
Щоб зменшити цей ефект, використовуйте зображення з менш вираженим викривленням перспективи або обріжте кінцевий результат, щоб видалити порожні області меж.
Лінії все ще виглядають трохи нахиленими після обробки: Виправлення перспективи вимагає дуже точного розрахунку точок зникнення. Якщо ваше вихідне зображення має дисторсію об'єктива (бочкоподібну або подушкоподібну, поширену в ширококутних об'єктивах смартфонів), прямі лінії в реальному світі виглядають вигнутими на фотографії. Інструмент виправлення перспективи коригує лінійну перспективу, але не виправляє сферичну дисторсію об'єктива.
Невелика кривизна, що залишається в лініях, є оптичною дисторсією об'єктива, а не викривленням перспективи. Для найкращих результатів використовуйте фотографії, зроблені стандартним об'єктивом із помірним рівнем масштабування.
### Чому моє виправлене зображення виглядає так, ніби має нижчу роздільну здатність, ніж оригінал? Матриця трансформації розтягує деякі ділянки зображення, щоб заповнити виправлену форму. Коли libvips розтягує групу пікселів на більшу площу, він має інтерполювати нові значення пікселів між оригінальними.
Ця інтерполяція трохи пом'якшує зображення, особливо в ділянках, які були сильно стиснуті під час трансформації. Компроміс між точною геометрією та різкістю є властивим для всіх алгоритмів виправлення перспективи.
### Що станеться, якщо я завантажу фотографію, зроблену під екстремальним кутом, наприклад, дивлячись прямо вгору на хмарочос? libvips може виправити екстремальне трапецеїдальне спотворення, але результати вимагатимуть більш агресивного обрізання. Коли libvips відображає сильно спотворені координати на плоску поверхню, велика частина зображення опиняється за межами прямокутної рамки і обрізається.
Для найкращої якості розташуйтеся якомога рівніше відносно об'єкта перед тим, як зробити фото.
Frequently Asked Questions
Q: Як працює Perspective Fix?
Perspective Fix обробляє файли повністю у вашому браузері за допомогою WebAssembly. Ваші файли ніколи не залишають ваш пристрій.
Q: Чи безкоштовний Perspective Fix?
Так, Perspective Fix є повністю безкоштовним, реєстрація чи обліковий запис не потрібні.