Class CvSink

All Implemented Interfaces:
AutoCloseable

public class CvSink
extends ImageSink
A sink for user code to accept video frames as OpenCV images. These sinks require the WPILib OpenCV builds. For an alternate OpenCV, see the documentation how to build your own with RawSink.
  • Constructor Details

    • CvSink

      public CvSink​(String name, PixelFormat pixelFormat)
      Create a sink for accepting OpenCV images. grabFrame() must be called on the created sink to get each new image.
      Parameters:
      name - Source name (arbitrary unique identifier)
      pixelFormat - Source pixel format
    • CvSink

      public CvSink​(String name)
      Create a sink for accepting OpenCV images. WaitForFrame() must be called on the created sink to get each new image. Defaults to kBGR for pixelFormat
      Parameters:
      name - Source name (arbitrary unique identifier)
  • Method Details

    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Overrides:
      close in class VideoSink
    • grabFrame

      public long grabFrame​(Mat image)
      Wait for the next frame and get the image. Times out (returning 0) after 0.225 seconds. The provided image will have the pixelFormat this class was constructed with.
      Parameters:
      image - Where to store the image.
      Returns:
      Frame time, or 0 on error (call GetError() to obtain the error message)
    • grabFrame

      public long grabFrame​(Mat image, double timeout)
      Wait for the next frame and get the image. Times out (returning 0) after timeout seconds. The provided image will have the pixelFormat this class was constructed with.
      Parameters:
      image - Where to store the image.
      timeout - Retrieval timeout in seconds.
      Returns:
      Frame time, or 0 on error (call GetError() to obtain the error message); the frame time is in 1 us increments.
    • grabFrameNoTimeout

      public long grabFrameNoTimeout​(Mat image)
      Wait for the next frame and get the image. May block forever. The provided image will have the pixelFormat this class was constructed with.
      Parameters:
      image - Where to store the image.
      Returns:
      Frame time, or 0 on error (call GetError() to obtain the error message); the frame time is in 1 us increments.
    • getDirectMat

      public Mat getDirectMat()
      Get the direct backing mat for this sink.

      This mat can be invalidated any time any of the grab* methods are called, or when the CvSink is closed.

      Returns:
      The backing mat.
    • grabFrameDirect

      public long grabFrameDirect()
      Wait for the next frame and store the image. Times out (returning 0) after 0.225 seconds. The provided image will have the pixelFormat this class was constructed with. Use getDirectMat() to grab the image.
      Returns:
      Frame time, or 0 on error (call GetError() to obtain the error message)
    • grabFrameDirect

      public long grabFrameDirect​(double timeout)
      Wait for the next frame and store the image. Times out (returning 0) after timeout seconds. The provided image will have the pixelFormat this class was constructed with. Use getDirectMat() to grab the image.
      Parameters:
      timeout - Retrieval timeout in seconds.
      Returns:
      Frame time, or 0 on error (call GetError() to obtain the error message); the frame time is in 1 us increments.
    • grabFrameNoTimeoutDirect

      public long grabFrameNoTimeoutDirect()
      Wait for the next frame and store the image. May block forever. The provided image will have the pixelFormat this class was constructed with. Use getDirectMat() to grab the image.
      Returns:
      Frame time, or 0 on error (call GetError() to obtain the error message); the frame time is in 1 us increments.