Transición de OpenCV 2 a OpenCV 3.x

OpenCV es una de las bibliotecas de visión artificial más populares y utilizadas. Contiene herramientas para llevar a cabo el procesamiento de imágenes y videos.

Cuando OpenCV 3..4.1 es una versión mejorada de OpenCV 2.4, ya que introdujo nuevos algoritmos y características. Aunque algunos de los módulos existentes fueron reescritos y trasladados a submódulos. En este artículo, me centraré en los cambios realizados en los módulos existentes de OpenCV 2.4 y cómo se pueden implementar en OpenCV 3.4.1.

Detección de características

Algunos de los algoritmos de detección de funciones (FREAK, BRIEF, SIFT y SURF) se han movido al repositorio pencv_contrib y al módulo xfeatures2d . Los algoritmos SIFT y SURF están patentados por sus creadores y no son libres. Aunque pueden ser utilizados con fines educativos y de investigación.

SIFT: crea un objeto detector de características SIFT.

# OpenCV 2.4
sift = cv2.SIFT()
  
# OpenCV 3.4.1
sift = cv2.xfeatures2d.SIFT_create()

SURF: Crear objeto detector de características SURF

# OpenCV 2.4
surf = cv2.SURF()
  
# OpenCV 3.4.1
surf = cv2.xfeatures2d.SURF_create()

RÁPIDO: Crear objeto detector RÁPIDO

# OpenCV 2.4
fast = cv2.FastFeatureDetector()
  
# OpenCV 3.4.1
fast = cv2.FastFeatureDetector_create()

ORB : Crear objeto detector ORB

# OpenCV 2.4
orb = cv2.ORB()
  
# OpenCV 3.4.1
orb = cv2.ORB_create()

Detector de manchas simple

# OpenCV 2.4
detector = cv2.SimpleBlobDetector()
  
# OpenCV 3.4.1
detector = cv2.SimpleBlobDetector_create()

DETECCIÓN DE CÍRCULOS

OpenCV usa el método de gradiente de Hough para detectar círculos que usan información de gradiente de los bordes.

# OpenCV 3.4.1
circles = cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, 4, 10)

Se ha cambiado el nombre del método de CV_HOUGH_GRADIENTla versión 2.4 a HOUGH_GRADIENTla versión 3.4.

CONTORNOS

Inicialmente, la findContours()función devolvía solo dos parámetros en OpenCV 2.4. En OpenCV 3.2 en adelante, la función se modificó para devolver tres parámetros, es decir, la imagen modificada, los contornos y la jerarquía.

# OpenCV 2.4
contours, hierarchy = cv2.findContours(img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
  
# OpenCV 3.4.1
im, contours, hierarchy = cv2.findContours(img, cv2.RETR_EXTERNAL, 
                                           cv2.CHAIN_APPROX_NONE)

Estos fueron algunos cambios importantes que podrían ser útiles al migrar el código de OpenCV 2 .4 a OpenCV 3.x .

Publicación traducida automáticamente

Artículo escrito por akankshaakkihal27 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *