Skip to content

Instantly share code, notes, and snippets.

View xylcbd's full-sized avatar
🎯
Focusing

xylcbd xylcbd

🎯
Focusing
View GitHub Profile
# coding: utf-8
import sys
import uuid
import json
import traceback
import winreg
from PyQt5.QtCore import QFile, QTimer, Qt, QDateTime, QSettings, QPoint, QSize
from PyQt5.QtWidgets import QApplication, QMainWindow, QGroupBox, QLineEdit, QTextEdit, QWidget, QHBoxLayout, QVBoxLayout, QPushButton, QLabel, QDateTimeEdit, QMenuBar, QAction
class ScopeExit:
def __init__(self, revert_exec=False):
self.revert_exec = revert_exec
self.cbs = []
def add_cb(self, cb):
self.cbs.append(cb)
def del_cb(self, cb):
used = 0
#coding: utf-8
# from: https://github.com/argman/EAST/blob/ab97939783901b7e22ff55e151964e159d1627b9/icdar.py
import cv2
import numpy as np
import copy
def shrink_poly(poly, r):
'''
fit a poly inside the origin poly, maybe bugs here...
used for generate the score map
#!/usr/local/bin/python
#coding: utf-8
import os
import sys
import fnmatch
import cv2
def files_in_dir(root, pattern):
all_files = []

批量替换目录中所有文件的字符串

sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl /modules`

-i 表示inplace edit,就地修改文件
-r 表示搜索子目录
-l 表示输出匹配的文件名
#include <chrono>
#include <string>
#include <iostream>
struct profiler
{
std::string name;
std::chrono::high_resolution_clock::time_point p;
profiler(std::string const &n) :
name(n), p(std::chrono::high_resolution_clock::now()) { }
static int split(std::vector<int>& data, const int beg, const int end)
{
if (beg >= end || end <= 0)
{
return -1;
}
int idx = beg;
const int base = data[end - 1];
for (int i = beg; i < end; i++)
{
static std::ostream& operator<<(std::ostream& os, const std::vector<int>& data)
{
for (size_t i = 0; i < data.size();i++)
{
os << data[i];
if (i < (int)data.size() - 1)
{
os << ", ";
}
}
std::string local_to_utf8(const std::string& src)
{
#if _WIN32
int len = MultiByteToWideChar(CP_ACP, 0, src.c_str(), -1, NULL, 0);
wchar_t* wszUTF16 = new wchar_t[len+1];
memset(wszUTF16, 0, len+1);
MultiByteToWideChar(CP_ACP, 0, src.c_str(), -1, wszUTF16, len);
len = WideCharToMultiByte(CP_UTF8, 0, wszUTF16, -1, NULL, 0, NULL, NULL);
char* szUTF8 = new char[len + 1];
memset(szUTF8, 0, len + 1);
@xylcbd
xylcbd / cr_ar.py
Last active January 6, 2021 05:52
calc cr & ar, for ocr benchmark.
def custom_min(data):
assert len(data) >= 1
if len(data) <= 0:
return data,0
min_idx = 0
min_data = data[min_idx]
for i,item in enumerate(data):
if item < min_data:
min_data = item
min_idx = i