\brief VideoExample::SyncProcess
| 83 | /// \brief VideoExample::SyncProcess |
| 84 | /// |
| 85 | void VideoExample::SyncProcess() |
| 86 | { |
| 87 | cv::VideoWriter writer; |
| 88 | |
| 89 | #ifndef SILENT_WORK |
| 90 | cv::namedWindow("Video", cv::WINDOW_NORMAL | cv::WINDOW_KEEPRATIO); |
| 91 | bool manualMode = false; |
| 92 | #endif |
| 93 | |
| 94 | double freq = cv::getTickFrequency(); |
| 95 | int64 allTime = 0; |
| 96 | |
| 97 | int framesCounter = m_startFrame + 1; |
| 98 | |
| 99 | cv::VideoCapture capture; |
| 100 | if (!OpenCapture(capture)) |
| 101 | { |
| 102 | m_logger->critical("Can't open {}", m_inFile); |
| 103 | return; |
| 104 | } |
| 105 | |
| 106 | #if 0 |
| 107 | // Write preview |
| 108 | cv::Mat prFrame; |
| 109 | capture >> prFrame; |
| 110 | cv::Mat textFrame(prFrame.size(), CV_8UC3); |
| 111 | textFrame = cv::Scalar(0, 0, 0); |
| 112 | std::string label{ "Original video" }; |
| 113 | int baseLine = 0; |
| 114 | double fontScale = (textFrame.cols < 1920) ? 2.0 : 3.0; |
| 115 | int thickness = 2; |
| 116 | int lineType = cv::LINE_AA; |
| 117 | int fontFace = cv::FONT_HERSHEY_TRIPLEX; |
| 118 | cv::Size labelSize = cv::getTextSize(label, fontFace, fontScale, thickness, &baseLine); |
| 119 | cv::putText(textFrame, label, cv::Point(textFrame.cols / 2 - labelSize.width / 2, textFrame.rows / 2 - labelSize.height / 2), fontFace, fontScale, cv::Scalar(255, 255, 255), thickness, lineType); |
| 120 | for (size_t fi = 0; fi < cvRound(2 * m_fps); ++fi) |
| 121 | { |
| 122 | WriteFrame(writer, textFrame); |
| 123 | } |
| 124 | WriteFrame(writer, prFrame); |
| 125 | for (;;) |
| 126 | { |
| 127 | capture >> prFrame; |
| 128 | if (prFrame.empty()) |
| 129 | break; |
| 130 | WriteFrame(writer, prFrame); |
| 131 | } |
| 132 | textFrame = cv::Scalar(0, 0, 0); |
| 133 | label = "Detection result"; |
| 134 | labelSize = cv::getTextSize(label, fontFace, fontScale, thickness, &baseLine); |
| 135 | cv::putText(textFrame, label, cv::Point(textFrame.cols / 2 - labelSize.width / 2, textFrame.rows / 2 - labelSize.height / 2), fontFace, fontScale, cv::Scalar(255, 255, 255), thickness, lineType); |
| 136 | for (size_t fi = 0; fi < cvRound(2 * m_fps); ++fi) |
| 137 | { |
| 138 | WriteFrame(writer, textFrame); |
| 139 | } |
| 140 | capture.release(); |
| 141 | OpenCapture(capture); |
| 142 | #endif |
no test coverage detected