22 #if defined(CV_WINDOWS)
27 QElapsedTimer CVTools::s_time;
31 for (
auto i = file_name.end() - 1; *i !=
'/'; i--) {
32 subname.insert(subname.begin(), *i);
40 int timediff = s_time.elapsed();
41 double f = timediff / 1000.0;
42 return QString(
"%1").arg(f);
46 QString newPath =
path;
47 if (!QFile::exists(
path)) {
48 newPath = newPath.replace(
"\\\\", QDir::separator());
49 newPath = newPath.replace(
"\\", QDir::separator());
50 newPath = QDir::toNativeSeparators(newPath);
60 return qstr.toStdString();
64 std::string cstr = arr.data();
72 return QString(cstr.c_str());
76 pCodec->
toUnicode(cstr.c_str(),
static_cast<int>(cstr.length()));
82 std::regex e(
"([a-z0-9A-Z]?)");
84 for (
int i = 0; i < str.size(); i++) {
85 std::string x(1, str[i]);
86 regex_search(x, m, e);
87 if (m.str() !=
" ")
result += m.str();
93 #if defined(CV_WINDOWS)
96 return QString(s.c_str());
101 #if defined(CV_WINDOWS)
104 return qs.toStdString();
109 std::string splitor) {
111 if (v.size() == 0)
return s;
112 for (std::size_t i = 0; i != v.size() - 1; ++i) {
113 s += (v[i] + splitor);
115 s += v[v.size() - 1];
122 if (k >= Qt::Key_0 && k <= Qt::Key_9) {
123 }
else if (k >= Qt::Key_A && k <= Qt::Key_Z) {
124 }
else if (k >= Qt::Key_F1 && k <= Qt::Key_F24) {
127 }
else if (k == Qt::Key_Tab) {
129 }
else if (k == Qt::Key_Backspace) {
131 }
else if (k == Qt::Key_Return) {
133 }
else if (k <= Qt::Key_Down && k >= Qt::Key_Left) {
134 int off = k - Qt::Key_Left;
136 }
else if (k == Qt::Key_Shift) {
138 }
else if (k == Qt::Key_Control) {
140 }
else if (k == Qt::Key_Alt) {
142 }
else if (k == Qt::Key_Meta) {
144 }
else if (k == Qt::Key_Insert) {
146 }
else if (k == Qt::Key_Delete) {
148 }
else if (k == Qt::Key_Home) {
150 }
else if (k == Qt::Key_End) {
152 }
else if (k == Qt::Key_PageUp) {
154 }
else if (k == Qt::Key_Down) {
156 }
else if (k == Qt::Key_CapsLock) {
158 }
else if (k == Qt::Key_NumLock) {
160 }
else if (k == Qt::Key_Space) {
165 if (!legal)
return 0;
170 std::wstring_convert<std::codecvt_utf8<wchar_t>> conv;
171 std::wstring wideStr = conv.from_bytes(szStr);
176 std::wstring_convert<std::codecvt_utf8<wchar_t>> conv;
177 std::string wideStr = conv.to_bytes(szStr);
183 unsigned long&
size) {
184 #if defined(CV_WINDOWS)
185 HANDLE hFile = CreateFile(
filename.c_str(), GENERIC_READ | GENERIC_WRITE,
186 FILE_SHARE_READ,
NULL, OPEN_EXISTING,
187 FILE_ATTRIBUTE_NORMAL,
NULL);
189 if (hFile == INVALID_HANDLE_VALUE) {
195 DWORD dwFileSize = GetFileSize(hFile,
NULL);
196 size = dwFileSize /
sizeof(char);
198 HANDLE hFileMapping = CreateFileMapping(hFile,
NULL, PAGE_READWRITE, 0,
199 dwFileSize +
sizeof(
char),
NULL);
201 if (hFileMapping ==
NULL) {
207 char* pbFile = (
char*)MapViewOfFile(hFileMapping, FILE_MAP_READ, 0, 0, 0);
208 if (pbFile ==
NULL) {
211 CloseHandle(hFileMapping);
220 data =
new char[
size];
221 CopyMemory(data, pbFile,
size);
223 UnmapViewOfFile(pbFile);
224 CloseHandle(hFileMapping);
236 unsigned long size) {
237 #if defined(CV_WINDOWS)
238 HANDLE hFile = CreateFile(
filename.c_str(), GENERIC_READ | GENERIC_WRITE,
239 FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
240 CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL,
NULL);
242 if (hFile == INVALID_HANDLE_VALUE) {
248 HANDLE hFileMapping =
249 CreateFileMapping(hFile,
NULL, PAGE_READWRITE, 0,
size,
NULL);
251 if (hFileMapping ==
NULL) {
253 CloseHandle(hFileMapping);
258 (TCHAR*)MapViewOfFile(hFileMapping, FILE_MAP_WRITE, 0, 0, 0);
259 if (pbFile ==
NULL) {
261 UnmapViewOfFile(pbFile);
267 CopyMemory(pbFile, data,
size);
269 UnmapViewOfFile(pbFile);
270 CloseHandle(hFileMapping);
281 std::vector<size_t>& indices) {
285 if (!input.open(QIODevice::ReadOnly)) {
286 CVLog::Error(QString(
"[CVTools::QMappingReader] Cannot open file : %1")
291 int size =
static_cast<int>(input.size());
293 uchar* fptr = input.map(0, input.size());
295 CVLog::Error(QString(
"[CVTools::QMappingReader] Cannot open file : %1")
300 char skipChar1[2] =
"\r";
301 char skipChar2[2] =
"\n";
302 char* buf =
reinterpret_cast<char*
>(fptr);
303 std::string currentLine;
306 for (
int i = 0; i <
size; ++i) {
308 if (buf[i] == *skipChar1) {
312 if (buf[i] == *skipChar2) {
313 value = std::stoi(currentLine);
318 indices.push_back(
static_cast<size_t>(value));
323 currentLine += buf[i];
335 if (!file.exists()) {
336 file.open(QIODevice::WriteOnly);
340 if (!file.resize(
static_cast<qint64
>(
length))) {
342 "[CVTools::QMappingWriter] Reserve space error! May have not "
343 "enough space avaliable!");
347 if (!file.open(QIODevice::ReadWrite)) {
348 CVLog::Error(QString(
"[CVTools::QMappingWriter] Cannot open file : %1")
354 uchar* fptr = file.map(0, file.size());
357 QString(
"[CVTools::QMappingWriter] Mapping file(%1) failed!")
359 fptr = file.map(0,
static_cast<qint64
>(
length));
363 char* buf =
reinterpret_cast<char*
>(fptr);
366 QString(
"[CVTools::QMappingWriter] Converting uchar* to char* "
371 memcpy(buf, data,
length);
QtCompatTextCodec * qtCompatCodecForLocale()
static bool PrintDebug(const char *format,...)
Same as Print, but works only in Debug mode.
static bool Warning(const char *format,...)
Prints out a formatted warning message in console.
static bool Error(const char *format,...)
Display an error dialog with formatted message.
QString toUnicode(const char *chars, int len=-1)
QByteArray fromUnicode(const QString &str)
__host__ __device__ float length(float2 v)
static const std::string path