discarding frames at the start

This commit is contained in:
Thomas FILLOD 2022-04-20 22:13:04 +02:00
parent d78e094641
commit 14144ccd27
2 changed files with 25 additions and 4 deletions

BIN
OpTests

Binary file not shown.

29
ppg.cpp
View File

@ -96,22 +96,43 @@ int main()
//! [start] //! [start]
cv::Mat rgbmat; cv::Mat rgbmat;
bool isDiscardData = true;
int countDiscard = 0;
const int DISCARD_DURATION = 5;//maybe do a float?
const int FPS = 30;//can actually switch to 15fps in low light, but for this application it is not very important
std::cout << "beginning loop" << std::endl;
while(!protonect_shutdown) while(!protonect_shutdown)
{ {
listener.waitForNewFrame(frames); listener.waitForNewFrame(frames);
libfreenect2::Frame *rgb = frames[libfreenect2::Frame::Color]; libfreenect2::Frame *rgb = frames[libfreenect2::Frame::Color];
cv::Mat(rgb->height, rgb->width, CV_8UC4, rgb->data).copyTo(rgbmat); cv::Mat(rgb->height, rgb->width, CV_8UC4, rgb->data).copyTo(rgbmat);
cv::imshow("rgb", rgbmat);
if(cv::waitKey(1) >= 0){//the listener waits for frames, there is no need to limit speed ourselves if(cv::waitKey(1) >= 0){//the listener waits for frames, there is no need to limit speed ourselves
protonect_shutdown = true; protonect_shutdown = true;
} }
listener.release(frames); listener.release(frames);
cv::imshow("rgb", rgbmat);
if(isDiscardData){
countDiscard++;
if(countDiscard == DISCARD_DURATION*FPS){
isDiscardData = false;
std::cout << "not discarding data anymore" << std::endl;
}
continue;
}
} }
//! [loop end] //! [loop end]