#pragma once

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <vector>
#include <mutex>
#include "QtCore\qdatetime.h"
#include "QImage.h"
#include <opencv2/opencv.hpp>
#include <Windows.h>
#include <ShlObj.h>
#include <Commdlg.h>
#include <tchar.h>
//#define __DEBUG

#ifdef __DEBUG
#define DEBUG(format, ...) printf (format "\n", ##__VA_ARGS__)
#else
#define DEBUG(format, ...)
#endif

#define Queue_Size         15

std::vector<std::string> string_split(std::string str, std::string pattern);
std::string format(const char *pszFmt, ...);
QImage cvMatToQImage(const cv::Mat& mat);
void getMinMax(std::vector<cv::Point3i> points,cv::Point3i &min, cv::Point3i &max);
QString SecondToQStrTime(qint64 time_sec);
void getFiles(std::string path, std::vector<std::string>& files);
std::string SelectDirBRI();
std::string SelectFileOFN();
std::string SelectDirIFD();