使用nvvidconv在Jetson Nano上使用Python OpenCV同时在2个方向上翻转帧

k2arahey  于 2023-02-19  发布在  Python
关注(0)|答案(1)|浏览(154)

根据文档Accelerated_GStreamer_User_Guide_Release_24.2.1nvvidconv提供了7种翻转帧的方法。
我想同时做nvvidconv flip-method=4nvvidconv flip-method=6,在Jetson Nano上如何用cv2Python中的gstreamer管道?
守则:

import cv2

width = 640
height = 480
framerate = 30

gs_pipeline = f"v4l2src device=/dev/video0 io-mode=2 " \
              f"! image/jpeg, width={width}, height={height}, framerate={framerate}/1, format=MJPG " \
              f"! nvv4l2decoder mjpeg=1 " \
              f"! nvvidconv flip-method=[4, 6]  " \
              f"! video/x-raw, format=BGRx " \
              f"! videoconvert " \
              f"! video/x-raw, format=BGR " \
              f"! appsink drop=1"

gs_pipeline = gs_pipeline
print(f"gst-launch-1.0 {gs_pipeline}\n")

v_cap = cv2.VideoCapture(gs_pipeline, cv2.CAP_GSTREAMER)
if not v_cap.isOpened():
    print("failed to open video capture")
    v_cap.release()
    exit(-1)

while v_cap.isOpened():
    ret_val, frame = v_cap.read()
    if not ret_val:
        break

    cv2.imshow('', frame)

    input_key = cv2.waitKey(1)
    if input_key != -1:
        print(f"input key = {input_key}")

    if input_key == ord('q'):
        break

v_cap.release()
cv2.destroyAllWindows()
wbgh16ku

wbgh16ku1#

水平和垂直翻转相当于180°旋转,因此只需用途:

... ! nvvidconv flip-method=2 ! ...

相关问题