tutorial mac instalar python opencv

mac - opencv python install



¿Cuál es la diferencia entre todas estas interfaces de OpenCV Python? (1)

Existen

  • opencv (la biblioteca de los chicos de OpenCV),
  • cv (la antigua biblioteca de los chicos de OpenCV) y
  • pyopencv con su predecesor ctypes-opencv .

¿Cuáles son las principales diferencias y cuál debo usar?


Oficialmente, OpenCV lanza dos tipos de interfaces de Python, cv y cv2 .

CV:

Empecé a trabajar en cv . En esto, todos los tipos de datos OpenCV se conservan como tales. Por ejemplo, cuando se cargan, las imágenes tienen el formato cvMat , igual que en C ++.

Para las operaciones de matriz, hay varias funciones como cvSet2D , cvGet2D , etc. Y algunas discusiones dicen que son más lentas.

Para imageROI, necesita funciones especiales como cvSetImageROI .

Si encuentra contornos, se cvSeq estructuras de cvSeq que no son tan buenas para trabajar en comparación con las listas de Python o las matrices NumPy.

(Y creo que pronto se detendrá su desarrollo. Antes, solo había cv . Más tarde, OpenCV cv2 tanto cv como cv2 . Ahora, en las últimas versiones, solo está el módulo cv2 , y el cv es una subclase en el interior cv2 . cv2 llamar a import cv2.cv as cv para acceder a él.)

cv2:

Y el último es cv2 . En esto, todo se devuelve como objetos NumPy como ndarray y objetos native Python como lists , tuples , dictionary , etc. Por lo tanto, debido a este soporte de NumPy, puede realizar cualquier operación numpy aquí. NumPy es una biblioteca de procesamiento de matrices altamente estable y rápida.

Por ejemplo, si carga una imagen, se devuelve un ndarray .

array[i,j] le da el valor de píxel en la posición (i, j).

Además, para imageROI, el corte en matriz se puede usar como ROI=array[c1:c2,r1:r2] . Sin necesidad de funciones separadas.

Para agregar dos imágenes, no hay necesidad de llamar a ninguna función, simplemente haga res = img1+img2 . (Pero la adición de NumPy es una operación de módulo para matrices uint8, como imágenes. Consulte el artículo Diferencia entre Matriz aritmética en OpenCV y Numpy para obtener más información.

Los contornos devueltos son listas de matrices Numpy. Puede encontrar una discusión detallada sobre Contornos en contornos - 1: Primeros pasos .

En resumen, con cv2 todo se simplifica y es bastante rápido.

Una simple discusión sobre cómo NumPy acelera cv2 está en question Comparación de rendimiento de las interfaces OpenCV-Python, cv y cv2 .

pyopencv :

No sé mucho sobre esto ya que no lo he usado. Pero parece haber detenido un mayor desarrollo.

Creo que sería mejor seguir con las bibliotecas oficiales.

En resumen, ¡te recomendaría usar cv2!

EDITAR: Puede ver el procedimiento de instalación para el módulo cv2 en Install OpenCV en Windows para Python .