13 : _videoLoops(videoLoops),
22 _cap.open(videoFileName);
28 _fps = (float)
_cap.get(cv::CAP_PROP_FPS);
46 _cap.set(cv::CAP_PROP_POS_FRAMES, 0);
53 if (
_cap.read(bgrImg))
56 cv::cvtColor(bgrImg, grayImg, cv::COLOR_BGR2GRAY);
58 sensFrame = std::make_unique<SENSFrame>(
81 _cap.set(cv::CAP_PROP_POS_FRAMES, 0);
89 int frameIndex = (int)
_cap.get(cv::CAP_PROP_POS_FRAMES);
92 float lastFrameTime = frameIndex /
_fps;
96 frameTime = (float)(frameIndex + skippedFrame) /
_fps;
97 }
while ((frameTime - lastFrameTime) < frameDuration);
99 float frameError = (frameTime - lastFrameTime - frameDuration);
101 float totalError = (nbFrame * frameError);
102 if ((fmod(totalError, frameDuration) + frameError) > frameDuration && skippedFrame > 1)
109 if (
_cap.read(bgrImg))
112 cv::cvtColor(bgrImg, grayImg, cv::COLOR_BGR2GRAY);
114 sensFrame = std::make_unique<SENSFrame>(
131 int frameIndex = (int)
_cap.get(cv::CAP_PROP_POS_FRAMES);
132 int skippedFrame = 0;
134 float currentFrameTime = frameIndex /
_fps;
138 frameTime = frameIndex - skippedFrame /
_fps;
140 }
while ((currentFrameTime - frameTime) > 1.0 /
_targetFps);
154 int frameIndex = (int)
_cap.get(cv::CAP_PROP_POS_FRAMES);
162 _cap.set(cv::CAP_PROP_POS_FRAMES, frameIndex);
167 if (!
_cap.isOpened())
std::shared_ptr< SENSFrame > SENSFramePtr
cv::Size imageSize() const
cv::Size2i _videoFrameSize
SENSFramePtr grabPreviousFrame()
const SENSCalibration *const calibration() const
void setCalibration(SENSCalibration calibration, bool buildUndistortionMaps)
SENSFramePtr grabNextFrame()
void guessAndSetCalibration(float fovGuess)
void moveCapturePosition(int n)
std::string _videoFileName
SENSFramePtr grabNextResampledFrame()
SENSVideoStream(const std::string &videoFileName, bool videoLoops, bool mirrorH, bool mirrorV, float targetFps=0)
SENSFramePtr grabPreviousResampledFrame()
std::unique_ptr< SENSCalibration > _calibration
Class for holding computer information.
void mirrorImage(cv::Mat &img, bool mirrorH, bool mirrorV)
std::vector< char > & get(std::string path)
bool fileExists(const string &pathfilename)
Returns true if a file exists.