Difference between revisions of "RidgeRun OpenCV Fork"

From RidgeRun Developer Connection
Jump to: navigation, search
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 23:54, 17 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>