[Python]使用OpenCV进行轮廓检索

对遮罩层进行轮廓检索并合并到图像上 第一步使用高斯模糊GaussianBlur模糊边缘像素 第二步使用Canny侦测边界,丢弃部分散点 最后使用findContours找到外框 #对遮罩层进行轮廓检索并合并到图像上 def drawMaskContoursOverImage(image,mask): # convert colorspace gray = cv2.cvtColor(mask, cv2.COLOR_BGR2GRAY) #image = cv2.cvtColor(image, cv2.COLOR_GRAY2BGR) # 3*3 GaussianBlur # gray = cv2.GaussianBlur(gray, (3, 3), 0) # canny detect edge gray = cv2.Canny(gray, 100, 300) ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY) # binary是最后返回的二值图像 #findContours()第一个参数是源图像、第二个参数是轮廓检索模式,第三个参数是轮廓逼近方法 #输出是轮廓和层次结构,轮廓是图像中所有轮廓的python列表,每个单独的轮廓是对象边界点的(x,y)坐标的Numpy数组 binary, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) …

PostgreSQL查询表和index占用空间大小

PostgreSQL查询表和index占用空间大小 PostgreSQL表和index占用空间大小信息存储在 information_schema.tables中 通过SQL可以查询到相应的统计数据 –查出单个表的大小 select pg_size_pretty(pg_relation_size(‘TABLENAME’)); 查出表大小按大小含Index — 查出表大小按大小含Index SELECT “table_name”, pg_size_pretty(table_size) AS table_size, pg_size_pretty(indexes_size) AS indexes_size, pg_size_pretty(total_size) AS total_size FROM ( SELECT table_name, SUBSTRING(“table_name”,1,10) as short_name, pg_table_size(table_name) AS table_size, pg_indexes_size(table_name) AS indexes_size, pg_total_relation_size(table_name) AS total_size FROM ( SELECT (‘”‘ || table_schema || ‘”.”‘ || table_name || ‘”‘) AS table_name FROM information_schema.tables ) AS …

Python 代码方式生产中国身份证号码

Python 代码方式生产中国身份证号码 python做爬虫需要填写中国身份证号码,而且又各种验证规则,所以网上找了个靠谱的 import random, datetime def ident_generator(): #身份证号的前两位,省份代号 sheng = (’11’, ’12’, ’13’, ’14’, ’15’, ’21’, ’22’, ’23’, ’31’, ’32’, ’33’, ’34’, ’35’, ’36’, ’37’, ’41’, ’42’, ’43’, ’44’, ’45’, ’46’, ’50’, ’51’, ’52’, ’53’, ’54’, ’61’, ’62’, ’63’, ’64’, ’65’, ’66’) #随机选择距离今天在7000到25000的日期作为出生日期(没有特殊要求我就随便设置的,有特殊要求的此处可以完善下) birthdate = (datetime.date.today() – datetime.timedelta(days = random.randint(7000, 25000))) #拼接出身份证号的前17位(第3-第6位为市和区的代码,中国太大此处就偷懒了写了定值,有要求的可以做个随机来完善下;第15-第17位为出生的顺序码,随机在100到199中选择) ident = …

RQAlpha安装 ta-lib进行技术指标分析

RQAlpha安装 ta-lib进行技术指标分析 RQAlpha安装时需要事先安装ta-lib否则Python引用时会出现错误 STEP1.使用 ta-lib 的源代码编译 ta-lib 的静态库 wget https://jaist.dl.sourceforge.net/project/ta-lib/ta-lib/0.4.0/ta-lib-0.4.0-src.tar.gz tar xf ta-lib-0.4.0-src.tar.gz cd ta-lib # 安装到/usr ./configure –prefix=/usr make sudo make install 注意这里需要指定安装位置,编译安装的ta-lib是32位版本, 如果不指定的话在64位操作系统下是无法在lib和/usr/lib下找到的 STEP2.使用pip安装ta-lib pip install TA-Lib 参考 https://stackoverflow.com/questions/41155985/python-ta-lib-install-problems

Mybatis映射BigDecimal问题

Mybatis映射数据库类型中使用numberic和decimal时, 如果需要使用String进行数据传递但是小数位很长或者整数位很长的话 Mybatis会把数据映射成BigDecimal来处理 但是如果Mybatis会傻傻的使用.toString()来转换,结果可能会被转成科学记数法 今天某数据库存储的超长订单号就出现了这个问题,不说了,我去改代码了。 // MyBatis的做法,直接调用Bigdecmal的.toString() // 浮点数的打印时正常 new BigDecimal(“10000000000”).toString() // >>10000000000 // 普通的数字字符串,没关系,我们发誓订单号不会超过限度,用数字类型没关系 new BigDecimal(“100.000”).toString() // >>100.000 // 去除末尾多余的0,我们用了保留订单号,订单号用123开头,然后补0, new BigDecimal(“100.000”).stripTrailingZeros().toString() // >>1E+2 // 避免输出科学计数法, 这才是正确的做法,MyBatis怎么搞得,这点转换都不做,MyBatis还能干啥? new BigDecimal(“100.000”).stripTrailingZeros().toPlainString() // >>100

PostgreSql查询正在执行的SQL和查询执行耗时的SQL

运行在AWS RDS上的PostgreSql今天TransactionID耗尽,原因是有一个SQL执行占用CPU超过12小时 –查询正在执行的SQL select * from pg_stat_activity where datname=’schema名称’; –结束正在进行的R查询 select pg_cancel_backend(pid); –结束正在执行CUD操作 select pg_terminate_backend(pid);

VBS实现目录下所有文件归集

一个简单的需求: Windows 环境下用VBS/VBA来实现抽取某一个特定目录下的全部所有文件,要求遍历当前目录下所有的子目录。 注意各子目录下文件的文件名可能会重复,各子目录下存在空目录的情况。 实现VBS代码 ‘需要遍历的目录路径 dim strDirPath = “c:\dir” ‘遍历目录 Private Sub FileTree(strPath) Set obFso = CreateObject(“Scripting.FileSystemObject”) If obFso.FolderExists(strPath) Then Set obFolder = obFso.GetFolder(strPath) ‘遍历当前目录下的所有目录,递归调用 Set obSubFolders = obFolder.SubFolders For Each obSubFolder In obSubFolders Call FileTree(obSubFolder.Path & “”) Next ‘剔除当前目录 If strPath = Trim(strDirPath) Then Exit Sub End If ‘遍历当前目录下的所有文件 Set obFiles = obFolder.Files …