RidgeRun OpenCV Fork: Difference between revisions

From RidgeRun Developer Wiki
No edit summary
No edit summary
Line 14: Line 14:
* GStreamer support
* GStreamer support
* CUDA support (if applicable)
* CUDA support (if applicable)
== Enhancements ==
=== GStreamer Video Capture ===
Tested under the following conditions
* OpenCV Version: 4.4.0
* FPS and CPU usage taken with the [https://github.com/ridgerun/gst-perf GstPerf] element.
* The following script:
<script lang=python>
#!/usr/bin/env python3
import cv2 as cv
PIPE = "videotestsrc pattern=black !  \
        video/x-raw,format=BGR,width=1920,height=1080 ! \
        appsink sync=false drop=false max-buffers=3"
cap = cv.VideoCapture(PIPE, cv.CAP_GSTREAMER)
while True:
    ret, frame = cap.read()
    cv.imshow('display', frame)
    if cv.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()
cv.destroyAllWindows()
</script>

Revision as of 04:54, 18 September 2020

Introduction

The RidgeRun OpenCV fork is a modified version of the project with various improvements around speed and efficiency. While some changes are general (i.e.: any platform will benefit from them), others are specific to the NVIDIA Jetson family.

The fork is hosted at:

https://github.com/RidgeRun/opencv

Building the Project

Follow the instructions in our Compiling OpenCV from Source page. Make sure you select:

  • RidgeRun fork
  • GStreamer support
  • CUDA support (if applicable)

Enhancements

GStreamer Video Capture

Tested under the following conditions

  • OpenCV Version: 4.4.0
  • FPS and CPU usage taken with the GstPerf element.
  • The following script:

<script lang=python>

  1. !/usr/bin/env python3

import cv2 as cv

PIPE = "videotestsrc pattern=black ! \

       video/x-raw,format=BGR,width=1920,height=1080 ! \
       appsink sync=false drop=false max-buffers=3"

cap = cv.VideoCapture(PIPE, cv.CAP_GSTREAMER)

while True:

   ret, frame = cap.read()
   cv.imshow('display', frame)
   if cv.waitKey(1) & 0xFF == ord('q'):
       break

cap.release() cv.destroyAllWindows() </script>