В чем разница между всеми этими интерфейсами OpenCV Python?

Есть

  • opencv (библиотека от парней OpenCV),
  • cv (старая библиотека от парней OpenCV) и
  • pyopencv со своим предшественником ctypes-opencv .

В чем основные отличия и какие из них я должен использовать?

  • OpenCV python: ValueError: слишком много значений для распаковки
  • Ошибка при загрузке DLL при импорте cv2
  • Компьютерное зрение: маскировка человеческой руки
  • Python OpenCV 3.2 imshow () без содержимого изображения с waitKey (0)!
  • Ошибка перегрузки оператора оболочки Cython C ++ ()
  • Травление cv2.KeyPoint вызывает PicklingError
  • Могу ли я как-то «скомпилировать» скрипт python для работы на ПК без установки Python?
  • Python, как читать N количество строк за раз
  • Как я могу использовать io.StringIO () с модулем csv?
  • Функция python max с использованием «ключа» и выражения лямбда
  • Python: как игнорировать строки #comment при чтении в файле
  • Получить полностью квалифицированное имя класса объекта в Python
  • One Solution collect form web for “В чем разница между всеми этими интерфейсами OpenCV Python?”

    Официально OpenCV выпускает два типа интерфейсов Python, cv и cv2 .

    резюме:

    Я начал работать над cv . При этом все типы данных OpenCV сохраняются как таковые. Например, при загрузке изображения имеют формат cvMat , то же, что и в C ++.

    Для операций с массивами существует несколько функций, таких как cvSet2D , cvGet2D и т. Д. И некоторые дискуссии говорят, что они медленнее.

    Для imageROI вам нужны специальные функции, такие как cvSetImageROI .

    Если вы найдете контуры, cvSeq структуры cvSeq , которые не так хороши для работы по сравнению с списками Python или массивами NumPy.

    (И я думаю, что скоро его развитие будет остановлено. Раньше было только cv . Позже OpenCV пришел с cv и cv2 . Теперь в последних версиях есть только модуль cv2 , а cv – подкласс внутри cv2 . Вам нужно вызвать import cv2.cv as cv для доступа к нему.)

    CV2:

    И последний из них – cv2 . В этом все возвращается как объекты NumPy такие как ndarray и native Python объекты native Python такие как lists , tuples , dictionary и т. Д. Поэтому из-за этой поддержки NumPy вы можете делать любую операцию numpy здесь. NumPy – это высокостабильная и быстрая библиотека обработки массивов.

    Например, если вы загружаете изображение, возвращается ndarray .

    array[i,j] дает вам значение пикселя в позиции (i, j).

    Кроме того, для imageROI срез массива можно использовать как ROI=array[c1:c2,r1:r2] . Нет необходимости в отдельных функциях.

    Чтобы добавить два изображения, нет необходимости вызывать какую-либо функцию, просто выполните res = img1+img2 . (Но добавление NumPy является модульной операцией для массивов uint8, таких как изображения. См. Статью Разница между матричной арифметикой в ​​OpenCV и Numpy, чтобы узнать больше.

    Возвращаемые контуры – это списки массивов Numpy. Подробное обсуждение контуров в контурах – 1: Начало работы .

    Короче говоря, cv2 все упрощается и довольно быстро.

    Простое обсуждение того, как NumPy ускоряет cv2 в вопросе переполнения стека Сравнение производительности интерфейсов OpenCV-Python, cv и cv2 .

    pyopencv :

    Я мало знаю об этом, так как я его не использовал. Но, похоже, он прекратил дальнейшее развитие.

    Думаю, было бы лучше придерживаться официальных библиотек.

    Короче говоря, я бы рекомендовал вам использовать cv2!

    EDIT: вы можете увидеть процедуру установки модуля cv2 в Install OpenCV в Windows для Python .

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