- OpenCV — це дуже обширна бібліотека комп'ютерного зору, яка пропонує тисячі алгоритмів для аналізу та обробки зображень.
- En Windows Ви можете працювати з модулями OpenCV та contrib, використовуючи Pythonpip, файли .whl та дистрибутиви, такі як Anaconda.
- Зображення обробляються як масиви NumPy, і до них застосовуються базові операції, такі як читання, запис, малювання та перетворення кольорів.
- З правильно встановленою OpenCV ви можете вирішувати реальні завдання, такі як розпізнавання облич, сегментація, відстеження та доповнена реальність.
Якщо ви зайшли так далеко, це тому, що ви цього хочете Встановлення OpenCV з усіма його модулями contrib у Windows І ви, мабуть, вже зрозуміли, що це не так просто, як просто виконати команду, і все. Між версіями Python, додатковими бібліотеками, менеджерами пакетів та опціями компіляції дуже легко загубитися.
У наступних рядках ви знайдете дуже детальний посібник іспанською мовою з Іспанії, крок за кроком, де поєднано наступне Два основні способи роботи з OpenCV у WindowsВикористання попередньо скомпільованих пакетів (pip, whl та Anaconda) та розуміння того, що означає робота з бібліотекою, скомпільованою з коду, та з модулями contrib. Ми також розглянемо ключові концепції комп'ютерного зору, які допоможуть вам отримати максимальну віддачу від усього, що ви збираєтеся встановлювати.
Що таке OpenCV і чому модулі-контриб'ютори є цікавими?
Перш ніж торкатися чогось на вашій машині, важливо чітко розуміти, що ви встановлюєте. OpenCV (комп'ютерний зір з відкритим кодом) Це величезна бібліотека програмного забезпечення для комп'ютерного зору та обробки зображень, створена в Intel і сьогодні підтримується величезною спільнотою. Вона включає понад 2500 алгоритмів для таких різноманітних завдань, як розпізнавання облич, розпізнавання об'єктів, відстеження руху, сегментація, калібрування камери або доповнена реальність.
OpenCV доступний для кілька мов і системC++, Python, Java, а також для Windows, macOS та LinuxУ нашому випадку ми зосередимося на OpenCV-Pythonякий є специфічним зв'язуванням (API) для роботи з Python і який дуже добре інтегрується з такими бібліотеками, як numpy o Матплотліб, базовий для будь-якої серйозної роботи з машинним зором.
Коли ми говоримо про «внесок», ми маємо на увазі додатковий набір експериментальних або розширених модулів Вони не є частиною основної бібліотеки OpenCV. Ці модулі contrib розширюють бібліотеку більш сучасними або спеціалізованими алгоритмами, і це саме те, що вам потрібно, якщо ви хочете додаткові функції без необхідності проходити весь процес компіляції з нуля.
У Python найпряміший спосіб отримати цю додаткову потужність — це використовувати такі пакети, як opencv-contrib-python o opencv-contrib-python-headlessЦе попередньо скомпільовані бінарні файли з уже інтегрованими модулями contrib. Вони не є «офіційними» пакетами OpenCV.org, але Вони економлять величезну кількість часу І для більшості проектів їх більш ніж достатньо.
Необхідні знання: Python, NumPy, Matplotlib та супутнє програмне забезпечення
Щоб комфортно працювати з OpenCV, вам потрібні базові знання наукового середовища Python у вашій системі. Зокрема, ви будете використовувати Python 3 (на даний момент Python 2 ще немає), і вам майже завжди буде корисно мати такі бібліотеки, як NumPy, SciPy та Matplotlibна додаток до Jupyter або IDE, як-от Sublime Text, VS Code чи подібних.
Існує два основних способи налаштування цього середовища у Windows: Встановіть Python "з нуля" з його офіційного веб-сайту та керуйте всім за допомогою pipабо використовуйте дистрибутив типу Анаконда який одночасно встановлює Python, найуживаніші наукові пакети та власну екосистему керування середовищем.
Якщо ви оберете класичний шлях, вам потрібно буде завантажити код Python з офіційного веб-сайту Python. інсталятор для Windows 32 або 64 розрядної версії що відповідає вашій системі. Після завантаження важливо поставити прапорець «Додати Python 3.x до PATH»тому що це дозволить вам викликати Python з будь-якої консолі, просто ввівши пітон без необхідності вручну вказувати довгі маршрути.
Крім того, ви повинні переконатися, що до цієї установки включено наступне: pip, менеджер пакетів Python. Pip стане вашим чудовим союзником для встановлення OpenCV та решти залежностей, оскільки з кількома Команди Ви можете отримати за лічені секунди те, на що вручну могли б піти години.
Встановлення Python на Windows: класичний метод та за допомогою Anaconda
У Windows є два розумних способи налаштувати середовище Python, а потім додати OpenCV та модулі contrib: пряме завантаження з python.org o використання дистрибутиву AnacondaОбидва шляхи приведуть вас до одного й того ж місця призначення, але кожен має свої практичні переваги.
Якщо ви оберете шлях python.org, після завантаження виконуваного файлу потрібної версії (наприклад, Python 3.8.x або 3.10.x, залежно від того, яка у вас найлегше доступна), просто запустіть його від імені адміністратора, поставте прапорець, щоб додати його до вашого PATH, і залиште опцію встановлення ввімкненою. типун і завершіть роботу майстра. Після цього ви можете відкрити меню «Пуск», знайти «Python 3.x» і перевірити, чи інтерактивна консоль запускається без помилок.
Щоб завершити перевірку, відкрийте Командний рядок (CMD) і пише:
python -V
Якщо все правильно, ви побачите версію Python встановлено. Потім ви можете перевірити pip за допомогою:
pip -V
Якщо ви хочете бути точними з версіямиВи також можете оновити pip за допомогою:
python -m pip install -U pip
Інший варіант — потягнути Анакондарозподіл, орієнтований на обробка даних, наука та машинне навчання що вирішує значну частину проблеми із залежностями одним махом. Завантаження Завантажте інсталятор з офіційного вебсайту, виберіть версію Windows (32 або 64 розряди, залежно від вашого комп'ютера), дотримуйтесь інструкцій майстра, і після завершення у вас буде Python, NumPy, SciPy, Matplotlib, Jupyter та pip готові до використання.
За допомогою Anaconda, щоб перевірити, чи все на місці, ви відкриваєте консоль (це може бути "Запит Anaconda") та виконуєте ті самі перевірки: python -V y піп-ВВи побачите щось на кшталт Python 3.x або Anaconda 4.x, що підтверджує, що ваше середовище працює та готове до встановлення OpenCV.
Способи встановлення OpenCV, скомпільованого за допомогою contrib, у Windows
Після правильної установки Python ми можемо розпочати роботу з OpenCV. У Windows практичний спосіб отримання OpenCV, скомпільований з модулями contrib Без проблем із CMake та Visual Studio, головне — використовувати попередньо скомпільовані бінарні пакетиВи можете зробити це головним чином двома способами: шляхом типун за допомогою пакетів PyPI або шляхом встановлення Файл .whl завантажено з бінарного репозиторію.
Найпряміший шлях Використання pip це:
- pip встановити opencv-python: встановлює «основні» модулі, тобто основну частину OpenCV.
- pip встановити opencv-contrib-python: встановлює як основний, так і додаткові модулі contrib.
- pip install opencv-python-headless: лише основні модулі, але без підтримки графічного інтерфейсу (без вікон відображення).
- pip install opencv-contrib-python-headless: основні модулі + контрибутори, також без графічного інтерфейсу.
Однак ці пакети надходять не безпосередньо з OpenCV.org, а від зовнішнього розробника. Вони широко використовуються та дуже добре перевірені.Звичайна процедура для більшості користувачів полягає в установці opencv-contrib-pythonТому що ви матимете всі основні функції плюс додаткові можливості, без необхідності самостійно щось компілювати.
Класична альтернатива, особливо корисна, якщо вам потрібна дуже специфічне поєднання версій (наприклад, OpenCV 3.2 з Python 3.6 у 64-бітній версії), це завантажити Файл .whl (колесо) Вже скомпільовано для вашої системи. На цій сторінці ви зазвичай знайдете кілька файлів з іменами, що вказують на версію OpenCV, версію Python та архітектуру (win32 або amd64), а деякі містять "+contrib" в назві, що вказує на те, що вони містять модулі contrib.
Процес був би Щось на кшталт цього:
pip install "D:\opencv\opencv_python-3.2.0+contrib-cp36-cp36m-win_amd64.whl"
Ви змінюєте шлях до місця збереження файлу та виконуєте команду в консолі. Якщо конфліктів версій немає, pip встановить колесо, і в кінці ви побачите повідомлення, яке підтверджує це. OpenCV з contrib успішно встановлено для вашої версії Python.
Швидка установка за допомогою pip: opencv-contrib-python
Для більшості проектів, особливо якщо ви тільки починаєте або хочете одразу перейти до суті, все, що вам потрібно, це запущений Python 3, працюючий pip та запуск з командного рядка або Anaconda Prompt:
pip install opencv-contrib-python
Ця єдина команда завантажить останню сумісну версію з PyPI. OpenCV 4.x з допоміжними модулями та всі необхідні залежності. Це неофіційний, але надзвичайно зручний метод, який позбавляє вас необхідності компілювати OpenCV з вихідного коду на власній машині.
Після завершення процесу, можна спробувати що встановлення виконано правильно, відкривши Python (з консолі або будь-якого IDE) та імпортувавши бібліотеку:
import cv2
print(cv2.__version__)
Якщо помилка не з’являється, а номер версії друкується (наприклад, 4.2.0 або вище), означає, що OpenCV встановлено та доступний з вашого інтерпретатора PythonЦе швидка, але дуже корисна перевірка, щоб уникнути несподіванок пізніше під час запуску скриптів.
Важливо пам'ятати про одну ключову деталь ліцензування: Пакети opencv-python та opencv-contrib-python не містять «невільних» алгоритмів. такі як SIFT або SURF у їхніх класичних, власницьких версіях, саме тому, що їх не можна поширювати як є з юридичних причин. Якщо вам потрібні саме ці алгоритми, вам доведеться самостійно скомпілювати OpenCV з вихідного коду, увімкнувши відповідні опції, або використовувати безкоштовні альтернативи, які реалізують аналогічні функції.
Якщо ви хочете ще більше зменшити залежності (наприклад, на сервері, де немає потреби відображати вікна), ви можете обрати варіант безголовийщо опускає все, що пов'язано з графічним інтерфейсом. Решта використання бібліотеки буде ідентичною, за винятком того, що ви не зможете використовувати такі функції, як cv2.imshow щоб відкрити вікна зображень.
Тестування OpenCV: Перші скрипти та перевірки
Після встановлення OpenCV наступним кроком є переконання, що він справді Ви можете завантажувати зображення та працювати з ними без помилок.Мінімальний тест — це створити простий файл Python, наприклад test-opencv.pyз чимось таким елементарним, як:
import cv2
imagen = cv2.imread("logo.jpg")
cv2.imshow("prueba", imagen)
cv2.waitKey(0)
Ви це збережете сценарій у тій самій папці, де у вас є тестове зображення під назвою logo.jpgВідкрийте консоль, перейдіть до цієї папки та виконайте команду:
python prueba-opencv.py
Якщо в консолі відкриється вікно, яке показує зображення без помилок, можна вважати встановлення успішним. Ви використовуєте Базові функції зчитування та відображення зображень в OpenCVТож, якщо все пройде добре, решта складніших операцій також повинні працювати.
Ще один дуже поширений крок – перевірте ще раз Перевірте версію в самому скрипті, щоб переконатися, що ви використовуєте правильну. Просто додайте:
print("Versión de OpenCV:", cv2.__version__)
Під час запуску програми, Ви побачите номер версії на консолі.Це допоможе вам переконатися, що ви випадково не запускаєте іншу інсталяцію (наприклад, якщо у вас є кілька середовищ Anaconda або кілька версій Python у системі).
Зображення як матриці: як OpenCV бачить ваші дані
Щоб повною мірою скористатися всіма перевагами, які пропонує OpenCV, важливо розуміти, що Цифрове зображення — це не що інше, як матриця пікселів.OpenCV, через Python, представляє зображення як масиви numpyЦе означає, що ви можете дуже ефективно застосовувати векторизовані операції, перетворення та фільтри.
На зображенні кожен піксель — це невеликий «блок» інформації, що містить числові значення. Чим більше пікселів має зображення (тим вища роздільна здатність), Ви зможете обробити більше деталей.Окрім ширини та висоти, зображення має глибину кольору, яка визначається кількістю біт на піксель (bpp). Кількість можливих тонів визначається виразом:
кількість кольорів = 2^bpp
Наприклад, у бінарному зображенні з 1 бітом на піксель є лише два варіанти: 0 зазвичай представляє чорний колір і 1 представляє білий колір. У зображенні у градаціях сірого з 8 бітами на піксель у вас є Нівелі 256, де 0 — чорний, 255 — білий, а решта — проміжні відтінки сірого.
У стандартних кольорових зображеннях використовуються три канали: червоний, зелений та синійОднак, OpenCV зберігає зображення у форматі за замовчуванням. BGR (синій, зелений, червоний)Тоді як бібліотеки, такі як Matplotlib, очікують зображення у форматі RGB. Це призводить до класичного ефекту блакитного відтінку під час відображення зображення, зчитаного з OpenCV за допомогою Matplotlib без конвертації каналів.
Щоб вирішити цю проблему, зазвичай застосовується перетворення кольорів за допомогою cv2.cvtColorшляхом заміни каналів B та R перед відображенням зображення за допомогою Matplotlib. Таким чином, кольори відображаються так, як і очікувалося, і У тебе не буває такої дивної домінанти. що спочатку досить заплутує.
Базові операції із зображеннями в OpenCV
Як тільки ви зрозумієте, що зображення — це масив, перші операції, які ви виконуватимете з OpenCV, зазвичай дуже прості: відкривати, зберігати та малювати на зображенняхЦі початкові кроки допоможуть вам ознайомитися з API, перш ніж переходити до серйознішого аналізу.
Щоб прочитати образ з диска, використовується cv2.imread, а для відображення у вікні ви використовуєте cv2.imshowКоли ви хочете зберегти зображення (наприклад, результат обробки), ви будете використовувати cv2.imwrite, що вказує назву вихідного файлу та матрицю вже зміненого зображення.
Якщо те, що вас цікавить малювати прості фігури (лінії, прямокутники, кола) на зображенні, OpenCV пропонує спеціальні та дуже прості функції. Усі вони зазвичай вимагають певних загальних параметрів: зображення, на якому ви малюєте, координати або ключові моменти, колір як кортеж BGR (наприклад, (255, 0, 0) для чистого синього кольору в BGR), а також товщина лінії.
Наприклад, щоб намалювати пряму лінію, потрібно вказати два кінці лініїДля прямокутника потрібно передати координати верхнього лівого та нижнього правого кутів. Для кола потрібно вказати центр та радіус. Ці функції ідеально підходять для створення маски, накладання або візуалізації виявлення (наприклад, квадрати навколо граней або об'єктів).
Аналогічно, додавання тексту поверх зображення виконується за допомогою іншої спеціалізованої функції, яка приймає рядок, що записується, початкову позицію (текст починається з лівого нижнього кута точки, над якою ви перейдете), тип і розмір шрифту, а також такі атрибути, як колір, товщина або стиль лінії. Дуже часто Тип_лінії = cv2.LINE_AA мати згладжене покриття (згладжування) літер.
Використання IDE та середовищ розробки: Jupyter, Sublime Text та Anaconda
Хоча ви можете працювати з OpenCV, пишучи скрипти в Блокноті, на практиці це набагато зручніше використовувати IDE або інтерактивне середовищеДва поширені варіанти, коли починаєш вивчати комп'ютерний зір у Python: Jupyter Notebook y Sublime Text з пакетом Anaconda.
Юпітер дуже корисний для Тестуйте фрагменти коду, переглядайте вбудовані зображення та документуйте свої експерименти Це майже як писати в лабораторному зошиті. Ви можете запускати комірки, переглядати результати та змінювати параметри на льоту — ідеально підходить для роботи з фільтрами, порогами або детекторами, які потрібно точно налаштувати.
З іншого боку, Sublime Text — це легкий, але дуже потужний текстовий редактор, ідеальний, якщо ви віддаєте перевагу робочому процесу типу «.py файл + консоль». Щоб отримати від нього максимальну користь під час програмування на Python, рекомендується встановити Менеджер пакетів Sublime а потім пакет Анаконда (Sublime Text, а не дистрибутив Python), який додає автодоповнення, зв'язування та інструменти, спеціально призначені для розробки на Python.
Зазвичай процес виглядає наступним чином: спочатку встановіть Sublime Text 3 з офіційного веб-сайту; потім активуйте менеджер пакетів, вставивши скрипт, наданий сторінкою керування пакетами, у консоль Sublime; і, нарешті, встановіть пакет "Anaconda" з самого меню керування пакетами. Це перетворить Sublime на досить повне середовище для програмування на Python та OpenCV.
У системах, де ви вже використовуєте дистрибутив Anaconda Python, ви можете поєднати обидва варіанти: створити середовище Anaconda з вашими бажаними версіями Python та OpenCV і налаштувати Sublime Text для запуску ваших скриптів за допомогою цього конкретного інтерпретатора, щоб кожен проект може мати свої залежності добре ізольовані.
Що можна робити з OpenCV після його встановлення?
З повноцінною роботою OpenCV (а ще краще, якщо у вас встановлені модулі contrib), можливості у Windows величезні. Одним із найвідоміших застосунків є... розпізнавання обличчя та об'єктівЦе те, що використовується у фотографії (автофокус, фільтри), а також у маркетингу (аналіз аудиторії) або в системах безпеки.
Ви також можете використовувати OpenCV для сегментувати зображення та підраховувати об'єкти, виявляти рух у відео, витягувати особливості зі сцен для використання в моделях машинного навчання, відстежувати точки інтересу або створювати прості системи доповненої реальності на основі маркерів.
Оволодіння OpenCV вимагає багато практики. прості операції обробки зображень (відкривати, обрізати, змінювати розмір, конвертувати у градації сірого, застосовувати фільтри, малювати накладання) та розуміючи, як ці операції поєднуються для створення складніших конвеєрів. Маючи міцну основу, набагато легше перейти до складніших методів.
Офіційна документація OpenCV, разом із навчальними посібниками та форумами спільноти, є практично безкінечним ресурсом. Але все це випливає з того, що ви щойно побачили: Переконайтеся, що у вас правильно встановлено бібліотеку, з правильною версією Python та необхідними модулями contrib.Щойно ви подолаєш першу перешкоду, межу встановлює твоє бажання погратися із зображеннями та відео.
Після проходження всього цього процесу — вибору між класичною інсталяцією та інсталяцією за допомогою Anaconda, рішення про те, чи використовувати pip чи wheels для компіляції OpenCV з contrib, перевірки версії та тестування базових скриптів читання та малювання зображень — у вас тепер є міцна основа Щоб почати серйозно експериментувати з комп'ютерним зором у Windows, відтепер кожен новий проект буде ідеальним приводом трохи більше дослідити цю бібліотеку та продовжувати розширювати свій інструментарій Python.
Пристрасний письменник про світ байтів і технологій загалом. Я люблю ділитися своїми знаннями, пишучи, і саме це я буду робити в цьому блозі, показуватиму вам все найцікавіше про гаджети, програмне забезпечення, апаратне забезпечення, технологічні тренди тощо. Моя мета — допомогти вам орієнтуватися в цифровому світі в простий і цікавий спосіб.