Transformación de perspectiva: Python OpenCV

En Transformación de perspectiva, podemos cambiar la perspectiva de una imagen o video dado para obtener una mejor comprensión de la información requerida. En Transformación de perspectiva, debemos proporcionar los puntos de la imagen desde los que queremos recopilar información cambiando la perspectiva. También debemos proporcionar los puntos dentro de los cuales queremos mostrar nuestra imagen. Luego, obtenemos la transformación de perspectiva de los dos conjuntos de puntos dados y la envolvemos con la imagen original.

Usamos cv2.getPerspectiveTransform y luego cv2.warpPerspective .
 

método cv2.getPerspectiveTransform 

Sintaxis : cv2.getPerspectiveTransform(src, dst) 

Parámetros

  • src : Coordenadas de vértices cuadrangulares en la imagen de origen.
  • dst : Coordenadas de los vértices del cuadrilátero correspondiente en la imagen de destino.

método cv2.wrapPerspective 

Sintaxis : cv2.warpPerspective(src, dst, dsize)

Parámetros

  • src : Imagen de origen
  • dst : imagen de salida que tiene el tamaño dsize y el mismo tipo que src.
  • dsize : tamaño de la imagen de salida

A continuación se muestra el código de Python que explica la transformación de perspectiva:

Python3

# import necessary libraries
 
import cv2
import numpy as np
 
# Turn on Laptop's webcam
cap = cv2.VideoCapture(0)
 
while True:
     
    ret, frame = cap.read()
 
    # Locate points of the documents
    # or object which you want to transform
    pts1 = np.float32([[0, 260], [640, 260],
                       [0, 400], [640, 400]])
    pts2 = np.float32([[0, 0], [400, 0],
                       [0, 640], [400, 640]])
     
    # Apply Perspective Transform Algorithm
    matrix = cv2.getPerspectiveTransform(pts1, pts2)
    result = cv2.warpPerspective(frame, matrix, (500, 600))
     
    # Wrap the transformed image
    cv2.imshow('frame', frame) # Initial Capture
    cv2.imshow('frame1', result) # Transformed Capture
 
    if cv2.waitKey(24) == 27:
        break
 
cap.release()
cv2.destroyAllWindows()

Producción: 

Publicación traducida automáticamente

Artículo escrito por ayushmankumar7 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 *