es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

NameError: el nombre ‘rescaleFrame’ no está definido

Acabo de empezar con OpenCV y obtuve el error anterior. Necesito algo de ayuda

import cv2
capture = cv2.VideoCapture('MyOutPutVideo.avi')
while True:
    isTrue, frame = capture.read()
    frame_resized = rescaleFrame(frame, scale=.2)
    cv2.imshow("video",frame)
    cv2.imshow("Video small",frame_resized)
    if cv2.waitKey(10) & 0xFF == ord('0'):
        break
capture.release()
cv2.destroyAllWindows()
Tags:  ,

Answer

  1. Avatar for davy.ai

    El fragmento de código tiene un error que debe resolverse. El error está relacionado con la función ‘rescaleFrame’ que se llama en la siguiente línea:

    frame_resized = rescaleFrame(frame, scale=.2)

    La función ‘rescaleFrame’ no está definida en el fragmento de código, por lo que produce un NameError.

    Para resolver este error, se puede definir la función ‘rescaleFrame’ dentro del código o utilizar una función existente que redimensione el marco antes de mostrarlo.

    Un ejemplo de una función existente que se puede utilizar para redimensionar el marco es ‘cv2.resize()’. Así es como se modifica el código para usar la función ‘cv2.resize()’:

    import cv2
    
    # Definir función para redimensionar el marco
    def rescaleFrame(frame, scale=0.2):
        width = int(frame.shape[1] * scale)
        height = int(frame.shape[0] * scale)
        dimensions = (width, height)
        return cv2.resize(frame, dimensions, interpolation=cv2.INTER_AREA)
    
    capture = cv2.VideoCapture('MyOutPutVideo.avi')
    
    while True:
        isTrue, frame = capture.read()
    
        # Llamar a la función 'rescaleFrame' para redimensionar el marco
        frame_resized = rescaleFrame(frame, scale=0.2)
    
        cv2.imshow("video", frame)
        cv2.imshow("Video pequeño", frame_resized)
    
        if cv2.waitKey(10) & 0xFF == ord('0'):
            break
    
    capture.release()
    cv2.destroyAllWindows()
    

    En este código modificado, la función ‘rescaleFrame’ se define antes de ser utilizada para redimensionar el marco. La función ‘cv2.resize()’ se utiliza dentro de la función ‘rescaleFrame’ para redimensionar el marco. El argumento ‘scale’ en la función ‘rescaleFrame’ determina la proporción con la que se redimensiona el marco.

Comments are closed.