MCPcopy Create free account
hub / github.com/Smorodov/Multitarget-tracker / VideoExample

Method VideoExample

example/VideoExample.cpp:10–80  ·  view source on GitHub ↗

\brief VideoExample::VideoExample \param parser

Source from the content-addressed store, hash-verified

8/// \param parser
9///
10VideoExample::VideoExample(const cv::CommandLineParser& parser)
11 : m_resultsLog(parser.get<std::string>("log_res"), parser.get<int>("write_n_frame")),
12 m_cvatAnnotationsGenerator(parser.get<std::string>("cvat_res"))
13{
14 m_inFile = parser.get<std::string>(0);
15 m_outFile = parser.get<std::string>("out");
16 m_showLogsLevel = parser.get<std::string>("show_logs");
17 m_startFrame = parser.get<int>("start_frame");
18 m_endFrame = parser.get<int>("end_frame");
19 m_finishDelay = parser.get<int>("end_delay");
20 m_batchSize = std::max(1, parser.get<int>("batch_size"));
21 m_useContrastAdjustment = parser.get<int>("contrast_adjustment") != 0;
22
23 m_colors.emplace_back(255, 0, 0);
24 m_colors.emplace_back(0, 255, 0);
25 m_colors.emplace_back(0, 0, 255);
26 m_colors.emplace_back(255, 255, 0);
27 m_colors.emplace_back(0, 255, 255);
28 m_colors.emplace_back(255, 0, 255);
29 m_colors.emplace_back(255, 127, 255);
30 m_colors.emplace_back(127, 0, 255);
31 m_colors.emplace_back(127, 0, 127);
32
33 m_resultsLog.Open();
34
35 // Create loggers
36 m_consoleSink = std::make_shared<spdlog::sinks::stdout_color_sink_mt>();
37 m_consoleSink->set_level(spdlog::level::from_str(m_showLogsLevel));
38 m_consoleSink->set_pattern("[%^%l%$] %v");
39
40 auto currentTime = std::chrono::system_clock::now();
41 auto transformed = currentTime.time_since_epoch().count() / 1000000;
42 std::time_t tt = std::chrono::system_clock::to_time_t(currentTime);
43 char buffer[80];
44#ifdef WIN32
45 tm timeInfo;
46 localtime_s(&timeInfo, &tt);
47 strftime(buffer, 80, "%G%m%d_%H%M%S", &timeInfo);
48#else
49 auto timeInfo = localtime(&tt);
50 strftime(buffer, 80, "%G%m%d_%H%M%S", timeInfo);
51#endif
52
53 size_t max_size = 1024 * 1024 * 5;
54 size_t max_files = 3;
55 m_fileSink = std::make_shared<spdlog::sinks::rotating_file_sink_mt>("logs/" + std::string(buffer) + std::to_string(transformed % 1000) + ".txt", max_size, max_files);
56 m_fileSink->set_level(spdlog::level::from_str(m_showLogsLevel));
57
58 m_logger = std::shared_ptr<spdlog::logger>(new spdlog::logger("traffic", { m_consoleSink, m_fileSink }));
59 m_logger->set_level(spdlog::level::from_str(m_showLogsLevel));
60 m_logger->info("Start service");
61
62 std::string settingsFile = parser.get<std::string>("settings");
63 m_trackerSettingsLoaded = ParseTrackerSettings(settingsFile, m_trackerSettings);
64
65 if (m_batchSize > 1)
66 {
67 m_frameInfo[0].SetBatchSize(m_batchSize);

Callers

nothing calls this directly

Calls 4

ParseTrackerSettingsFunction · 0.85
OpenMethod · 0.80
SetBatchSizeMethod · 0.80
SetUseAdjustMethod · 0.80

Tested by

no test coverage detected