OpenCV 2.4.3 и Python

Несколько дней назад я искал хороший способ создать простую систему компьютерного зрения. Библиотека OpenCV – это то, что мне нужно, но было сложно учиться с Python, особенно после обновления OpenCV 2.4.3, имеющего очень тонкую документацию, связанную с Python. Итак, теперь я понимаю, что в OpenCV произошла куча изменений, для exaxmple

import cv 

сейчас

 import cv2 

И есть куча модулей, которые отсутствуют. Я имею в виду, да, есть примеры нового синтаксиса pythonopencv, но он очень узкий и доказал, что его трудно понять. Например: пример в официальной документации для кода Python

 cv2.cvtColor(src, code[, dst[, dstCn]]) 

Я знаю, что означает этот код и как его использовать, по крайней мере, я думаю, что знаю. Но писать исходный код и цветовой код ничего не дает мне:

  Traceback (most recent call last): File "C:\FILEFOLDER\tut.py", line 11, in <module> cv.cvtColor('proba.jpg', 'CV_RGB2GRAY') TypeError: an integer is required 

Или, если я пытаюсь написать код типа переменной:

 Traceback (most recent call last): File "C:\FILEFOLDER\tut.py", line 11, in <module> cv.cvtColor('proba.jpg', CV_RGB2GRAY) NameError: name 'CV_RGB2GRAY' is not defined 

Итак, есть ли справочный документ / учебник / учебник / руководство по Python для новейшего OpenCV с объяснениями, которые не путают новичков, подобных мне, с нежелательными примерами кода для C ++ или Java?

2 Solutions collect form web for “OpenCV 2.4.3 и Python”

Я думаю, вы принимаете это на обратном пути.

Фактически, с новым модулем cv2 OpenCV стал намного более простым по сравнению со старым cv интерфейсом. Не просто, но очень быстро и высокопроизводительно, благодаря поддержке Numpy. Дело только в том, что мы должны знать, как правильно использовать его.

Здесь вы должны использовать функцию следующим образом:

 img = cv2.imread('pic.jpg') gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 

Я хотел бы, чтобы вы посетили один SOF, который показывает некоторое сравнение между обоими модулями: что отличается между всеми этими интерфейсами OpenCV Python?

Здесь еще один SOF, который является простой демонстрацией того, как вы можете ускорить работу с поддержкой Numpy: сравнение производительности интерфейсов OpenCV-Python, cv и cv2

Вам не нужно изучать C ++ или C для использования OpenCV, хотя C ++ является официальным языком. Тем не менее, Python-OpenCV имеет хорошую поддержку. Как только вы поймете, как использовать OpenCV, вы сможете конвертировать коды C ++ в Python самостоятельно. Затем вы также можете изучить OpenCV из учебников по C ++. Например, я начал изучать OpenCV из «Learning OpenCV» Гэри Брэдски, который полностью находится на C ++. В то время существовал только cv интерфейс.

Как вы упомянули в своих комментариях, opencvpython.blogspot.com имеет несколько вводных руководств. Я начал фокусировать новичков в OpenCV.

Кроме того, проверьте этот SOF для получения дополнительных уроков: Книги для OpenCV и Python?

Чтобы взять его под другим углом и позволить запускать старый код с новыми версиями установки OpenCV …

Во-первых, переход от cv к cv2 относится к библиотеке, использующей разные структуры данных для множества функций. Самый простой способ определить, изменилась ли функция между cv2 и cv, состоит в том, что функции cv начинаются с капитала. Переработанные функции cv2, похоже, всегда имеют первую букву в нижнем регистре. Поэтому, если вы используете старую книгу или старые примеры, вы все равно можете использовать устаревшие cv. cv теперь просто вложено в cv2. Просто используйте в верхней части своих скриптов следующее:

  import cv2 import cv2.cv as cv #required for old code not to be changed 

Это позволяет вам просто запускать старый код без его изменения. Здесь я продемонстрирую ваш вызов функции. Ты имел…

  cv.cvtColor('proba.jpg', 'CV_RGB2GRAY') 

Первое, что я замечаю, это то, что ваша функция может быть названа неправильной. (Учитывая, что первая буква функции имеет нижний регистр, она должна начинаться с cv2, а не cv). Второй – это «код», передаваемый функцией. «Коды» – это члены (кодирование noob здесь, простите меня, если какой-то мой vocab неточен) cv2 и cv, но не всегда одинаковый. У вас есть CV_RGB2GRAY. Во-первых, никаких кавычек. Это код cv 'не cv2. Также вам не хватает «cv». спереди. Чтобы продемонстрировать здесь, как я считаю, ваша функция должна быть вызвана для старой версии cv:

  cv.CvtColor('proba.jpg', cv.CV_RGB2GRAY) #Assuming you used listed imports cv2.cv.CvtColor('proba.jpg', cv2.cv.CV_RGB2GRAY) #Assuming you skipped second import 

А теперь cv2 …

  cv2.cvtColor('proba.jpg', cv2.COLOR_RGB2GRAY) 

Там вы идете, я надеюсь, что это поможет. Помните, что при запуске сценариев python вы можете вводить все, что вы не уверены, непосредственно в командной строке. Это творит чудеса, помогая мне построить мое понимание (я впервые использовал python 5 дней назад). Например, если вам интересно, почему в вашей функции требуется целое число, когда вы вводите

  cv.CV_RGB2GRAY 

прямо в командную строку python, он нажимает на вас «7» (удобно, что это int). Версия cv2 выплевывает «7L». Просто не забудьте использовать функцию WaitKey () снова и снова в той или иной форме, иначе у highgui может не быть необходимого времени для обработки некоторых команд, в некоторых ситуациях. Хорошо, что обертывает его. Извините, если я рассмотрел некоторые вещи, которые уже были охвачены или были упомянуты. Если я не стесняюсь удалить его, администраторы.

  • Совместимость OpenCV BFMatcher () всегда возвращает ошибку
  • Аффинное преобразование между контурами в OpenCV
  • Кто-нибудь когда-либо работал с OpenCV с Python 2.7 на MacOS 10.6?
  • Компьютерное зрение: маскировка человеческой руки
  • Matplotlib: Какова функция cmap в imshow?
  • Соответствие BFMatcher в ошибке запуска OpenCV
  • Как узнать общее количество кадров в файле cv2 в python
  • Сравните подобие изображений с помощью OpenCV с Python
  • Бинаризация изображения в opencv
  • Python OpenCV-код обнаружения лица иногда повышает объект `tuple 'не имеет атрибута' shape``
  • Размер BoundingBox / ROI для отслеживания объекта продолжает расти, несмотря на фиксированный начальный размер
  •  
    Interesting Posts for Van-Lav

    Поиск равных значений из списка списка кортежей в Python

    Невозможно запустить ничего из mysql-utilities: «Нет модуля с именем mysql.utilities.common.tools»

    Простая, кросс-платформенная MIDI-библиотека для Python

    FileNotFoundError: Das System kann die angegebene Datei nicht finden

    Как вернуть пользовательский JSON в Django REST Framework

    Массовые электронные письма в новом API Gmail

    Получение среднего количества панд с помощью GroupBy-Getting DataError: нет числовых типов для агрегирования –

    Использование Datetimes с Regplot для Seaborn's

    У Python есть что-то столь же надежное, как Rvm Ruby?

    Может ли BeautifulSoup анализировать xml, когда определенный тег является самозакрывающимся и не в то же время

    Ошибки, встречающиеся в partial_fit в scikit learn

    UnicodeEncodeError: кодек ascii не может кодировать символ в позиции 0: порядковый номер не в диапазоне (128)

    Python: количество строк, на которые влияет cursor.execute ("SELECT …)

    Множество типов данных Python genfromtext

    numpy python 3.4.1: Python 3.4 не найден в реестре

    Python - лучший язык программирования в мире.