5#ifndef CSCORE_CSCORE_CV_H_
6#define CSCORE_CSCORE_CV_H_
10#include <opencv2/core/mat.hpp>
74 bool skipVerification);
114 uint64_t
GrabFrame(cv::Mat& image,
double timeout = 0.225);
174 double timeout = 0.225);
205 int width,
int height,
int fps) {
210inline bool CvSource::VerifyFormat(cv::Mat& image,
212 int channels = image.channels();
213 switch (pixelFormat) {
263 if (image.depth() == CV_8U) {
266 image.convertTo(finalImage, CV_8U);
269 int channels = finalImage.channels();
274 }
else if (channels == 2) {
277 }
else if (channels == 3) {
280 }
else if (channels == 4) {
293 bool skipVerification) {
296 if (image.depth() == CV_8U) {
299 image.convertTo(finalImage, CV_8U);
302 if (!skipVerification) {
303 if (!VerifyFormat(finalImage, pixelFormat)) {
310 frame.
data = finalImage.data;
313 frame.
size = finalImage.total() * finalImage.channels();
314 frame.
width = finalImage.cols;
315 frame.
height = finalImage.rows;
316 frame.
stride = finalImage.step;
325 this->pixelFormat = pixelFormat;
329 :
ImageSink{sink}, pixelFormat{sink.pixelFormat} {}
337 tmpnam.copyTo(image);
347 tmpnam.copyTo(image);
353 switch (pixelFormat) {
387 rawFrame.
data,
static_cast<size_t>(rawFrame.
stride)};
403 rawFrame.
data,
static_cast<size_t>(rawFrame.
stride)};
408 uint64_t lastFrameTime,
422 rawFrame.
data,
static_cast<size_t>(rawFrame.
stride)};
WPI_PixelFormat
Pixel formats.
Definition RawFrame.h:51
@ WPI_PIXFMT_YUYV
Definition RawFrame.h:54
@ WPI_PIXFMT_Y16
Definition RawFrame.h:58
@ WPI_PIXFMT_UYVY
Definition RawFrame.h:59
@ WPI_PIXFMT_BGRA
Definition RawFrame.h:60
@ WPI_PIXFMT_MJPEG
Definition RawFrame.h:53
@ WPI_PIXFMT_GRAY
Definition RawFrame.h:57
@ WPI_PIXFMT_RGB565
Definition RawFrame.h:55
@ WPI_PIXFMT_BGR
Definition RawFrame.h:56
WPI_TimestampSource
Timestamp metadata.
Definition RawFrame.h:66
A source for user code to accept video frames as OpenCV images.
Definition cscore_cv.h:86
WPI_TimestampSource LastFrameTimeSource()
Get the time source for the timestamp the last frame was grabbed at.
Definition cscore_cv.h:430
uint64_t GrabFrame(cv::Mat &image, double timeout=0.225)
Wait for the next frame and get the image.
Definition cscore_cv.h:331
uint64_t GrabFrameDirect(cv::Mat &image, double timeout=0.225)
Wait for the next frame and get the image.
Definition cscore_cv.h:375
uint64_t LastFrameTime()
Get the last time a frame was grabbed.
Definition cscore_cv.h:426
uint64_t GrabFrameDirectLastTime(cv::Mat &image, uint64_t lastFrameTime, double timeout=0.225)
Wait for the next frame and get the image.
Definition cscore_cv.h:407
uint64_t GrabFrameNoTimeout(cv::Mat &image)
Wait for the next frame and get the image.
Definition cscore_cv.h:341
uint64_t GrabFrameNoTimeoutDirect(cv::Mat &image)
Wait for the next frame and get the image.
Definition cscore_cv.h:391
A source for user code to provide OpenCV images as video frames.
Definition cscore_cv.h:23
void PutFrame(cv::Mat &image)
Put an OpenCV image and notify sinks.
Definition cscore_cv.h:260
A base class for single image reading sinks.
Definition cscore_oo.h:1451
A base class for single image providing sources.
Definition cscore_oo.h:984
CS_Status m_status
Definition cscore_oo.h:1339
CS_Sink m_handle
Definition cscore_oo.h:1340
CS_Source m_handle
Video source handle.
Definition cscore_oo.h:603
CS_Status m_status
Definition cscore_oo.h:600
@ CS_OK
Definition cscore_c.h:62
uint64_t GrabSinkFrameTimeoutLastTime(CS_Sink sink, WPI_RawFrame &image, double timeout, uint64_t lastFrameTime, CS_Status *status)
CS_Source CreateRawSource(std::string_view name, bool isCv, const VideoMode &mode, CS_Status *status)
CS_Sink CreateRawSink(std::string_view name, bool isCv, CS_Status *status)
uint64_t GrabSinkFrameTimeout(CS_Sink sink, WPI_RawFrame &image, double timeout, CS_Status *status)
uint64_t GrabSinkFrame(CS_Sink sink, WPI_RawFrame &image, CS_Status *status)
void PutSourceFrame(CS_Source source, const WPI_RawFrame &image, CS_Status *status)
CameraServer (cscore) namespace.
Definition ShuffleboardContainer.h:25
Raw Frame.
Definition RawFrame.h:32
int pixelFormat
Definition RawFrame.h:40
uint64_t timestamp
Definition RawFrame.h:44
void * freeCbData
Definition RawFrame.h:37
void(* freeFunc)(void *cbdata, void *data, size_t capacity)
Definition RawFrame.h:36
uint8_t * data
Definition RawFrame.h:34
size_t size
Definition RawFrame.h:39
int height
Definition RawFrame.h:42
int stride
Definition RawFrame.h:43
int width
Definition RawFrame.h:41
int timestampSrc
Definition RawFrame.h:45
Video mode.
Definition cscore_cpp.h:62
PixelFormat
Definition cscore_cpp.h:63
@ kYUYV
Definition cscore_cpp.h:66
@ kGray
Definition cscore_cpp.h:69
@ kBGR
Definition cscore_cpp.h:68
@ kBGRA
Definition cscore_cpp.h:72
@ kMJPEG
Definition cscore_cpp.h:65
@ kY16
Definition cscore_cpp.h:70
@ kUYVY
Definition cscore_cpp.h:71
@ kRGB565
Definition cscore_cpp.h:67