Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用GStreamer/OpenCV进行轮换,而不增加延迟(Jetson Nano、OpenCV 4.1、GStreamer 1.0、Python)_Python_Opencv_Gstreamer_Nvidia Jetson - Fatal编程技术网

使用GStreamer/OpenCV进行轮换,而不增加延迟(Jetson Nano、OpenCV 4.1、GStreamer 1.0、Python)

使用GStreamer/OpenCV进行轮换,而不增加延迟(Jetson Nano、OpenCV 4.1、GStreamer 1.0、Python),python,opencv,gstreamer,nvidia-jetson,Python,Opencv,Gstreamer,Nvidia Jetson,我目前正在运行一个Python程序来显示Jetson Nano上RPi摄像头模块V2的视频。我正在使用OpenCV4.1和GStreamer 1.0。我了解,可以使用gstreamer和opencv旋转图像,如下所示: OpenCV: def rotate_image(img, angle=0): w = 1280 h = 720 center = (w / 2, h / 2) matrix = cv2.getRotationMatrix2D(center, an

我目前正在运行一个Python程序来显示Jetson Nano上RPi摄像头模块V2的视频。我正在使用OpenCV4.1和GStreamer 1.0。我了解,可以使用gstreamer和opencv旋转图像,如下所示:

OpenCV:

def rotate_image(img, angle=0):
    w = 1280
    h = 720
    center = (w / 2, h / 2)
    matrix = cv2.getRotationMatrix2D(center, angle, 1.0)
    rotated_img = cv2.warpAffine(img, matrix, (w, h), flags=cv2.INTER_LINEAR)
    return rotated_img
# This has been tested as both a Mat (using CPU) and as a UMat (with OpenCL ==> using GPU)
GStreamer管道:

pipeline = 'nvarguscamerasrc ! video/x-raw(memory:NVMM),width=1280, height=720, framerate=30/1, format=NV12 ! nvvidconv flip-method=0 ! video/x-raw,width={}, height={},format=BGRx ! rotate angle=0.78 ! videoconvert ! video/x-raw, format=BGR ! appsink '
# The key is "! rotate angle 0.78 !". rotate is a 'bad' gstreamer plugin

这两种方法都完全适用于旋转视频,但问题是无论是使用gstreamer旋转插件、OpenCV Mat还是OpenCV UMat,这两种方法都会增加显著的延迟。有没有人能告诉我,是否有任何方法可以使视频流(或每一帧)的旋转延迟更小?谢谢

如果您只想显示旋转后的图像,则可以在GPU上的着色器程序中使用或旋转图像。如果您只想显示旋转后的图像,则可以在GPU上的着色器程序中使用或旋转图像。