Вопрос по python – Чем отличаются все эти интерфейсы OpenCV Python?

79

Есть

opencv (the library from the OpenCV guys), cv (the old library from the OpenCV guys) and pyopencv with its predecessor ctypes-opencv.

Каковы основные различия и какой из них мне следует использовать?

Ваш Ответ

1   ответ
127

cv а такжеcv2.

cv:

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

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

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

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

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

cv2:

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

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

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

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

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

Возвращенные контуры являются списками массивов Numpy. Вы можете найти подробное обсуждение Contours вКонтуры - 1: Начало работы.

In short, with cv2 everything is simplified and pretty fast.

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

pyopencv:

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

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

In short, I would recommend you to use cv2!

РЕДАКТИРОВАТЬ: Вы можете увидеть процедуру установки дляcv2 модуль вУстановите OpenCV в Windows для Python.

Error: User Rate Limit Exceededopencvpython.blogspot.in/2012/05/…
Error: User Rate Limit Exceededa project with Python 3.xError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Framester
Error: User Rate Limit Exceededgoo.gl/MUjXiError: User Rate Limit Exceeded

Похожие вопросы