
项目实战
文章平均质量分 93
记录记录
吨吨不打野
不要慌,不要慌,太阳落下有月光
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
PaddleOCR二次全流程——3.使用TextRender合成图片
1. 确定要合成的数据量参考PaddlePaddle的微信公众号文章:百家桨坛 | 第一期:OCR文字识别专题100问对于识别任务,需要保证识别字典中每个字符出现在不同场景的行文本图像中数目需要大于200张。例如:如果字典中有五个字,每个字都需要出现在200张图片以上,那么最少要求的图像数量应该在200-1000张之间,这样可以保证基本的识别效果我的场景是,英文26个,数字10个,同时还有一些标点符号,- . x等,差不多50个字符,那就是至少2w张图,反正越多越好。另外,根据StyleT原创 2021-04-14 14:54:58 · 7082 阅读 · 36 评论 -
pywin32+excel(五)——复制粘贴和公式赋值操作
1. 赋值粘贴通过excel录制宏功能,大概知道了vba中实现相关操作的函数是:copy()和pasteSub 宏1() ActiveWindow.SmallScroll Down:=-12 Range("A6:H23").Select Selection.Copy ActiveWindow.SmallScroll Down:=3 Range("A30").Select ActiveSheet.PasteEnd Sub去MSDN搜搜,看具体的用法是什原创 2021-02-19 16:26:46 · 2370 阅读 · 0 评论 -
pywin32+excel(三)——python通过pywin32操作excel
项目进行到实验三了,继续python操作excel1. python跳出双重循环参考python跳出双层for循环的解决方法在二维数组的遍历中,我们经常使用双层for循环。在某些时候,我们并不需要遍历整个二维数组。当条件满足时就应该终止for循环。但是,直接在内层循环中break并不会让外层循环也终止。可以使用for...else...语法解决。for i in range(5): for j in range(5): print(i, j) if i == 3 and j原创 2020-11-25 11:03:21 · 2296 阅读 · 0 评论 -
PyQt——3. 使用opencv读取rtfs流并标记矩形框导出配置文件
参考链接一般参考链接都是前期调研,看大致情况的,所以实际参考的并不一定是这些链接,还是以正文为主,哈哈哈PyQt结合Opencv显示图片以及摄像头原创 2020-11-25 10:24:52 · 1188 阅读 · 0 评论 -
PyQt——2. Qt Designer快速入门
1. 介绍制作程序UI界面,一般可以通过UI制作工具(例如:Qt Designer)和纯代码编写两种方式。在PyQt中,也可以采用这两种方式,以下主要是介绍使用Qt Designer来制作UI界面。2. QtDesigner 快速入门QtDesigner是专门用来制作PyQt程序UI界面的工具,其生成的UI界面是一个后缀为.ui的文件。可以通过命令将.ui文件转换为.py格式的文件,并被其他Python文件引用QtDesigner符合MVC(模型-视图-控制器)设计模式,做到了显示和业务逻原创 2020-11-18 12:40:32 · 2549 阅读 · 0 评论 -
PyQt——1. 简单认识PyQt及Python3.7安装QtDesigner
1. 介绍主要参考的是这本书PyQt5 快速开发与实战。书配套的源码Github地址位于:《PyQt5快速开发与实战》怪不得我买的时候17年10月第1版,19年8月就第9次印刷了,99块卖这么火,书应该还不错吧1.1 关于QtPyQt=Python+Qt,关于Qt,根据qt (应用程序开发框架),大概知道Qt是一个的跨平台C++图形用户界面应用程序开发框架(即使用Qt只需要开发一次应用程序,就可以跨不同桌面和嵌入式操作系统来部署该应用程序),已知的一些使用QT开发的软件有(从百度百科找了一些原创 2020-11-17 09:57:38 · 1498 阅读 · 0 评论 -
关于进程通信的日常知识
项目需求: 需要通过程序(python/c++)读取另一个.exe程序的进程,来获取该程序界面中表格里的数据尝试1: 直接通过 win32api等 控件的函数/属性来获取 无效尝试2:进程通信,自己程序的进程去读取 该程序进程的 内存 共享进程来进行 进程通信所以这里需要对进程通信/进程共享内存进行一定的了解进程通信目前能搜到的差不多都是以linux为例的(不太记得大学时候学的进程通信是在什么操作系统上了,但是确实是这几种,差不多):Linux系统提供了各种系统调用API用于进程.原创 2020-11-10 11:24:42 · 272 阅读 · 0 评论 -
获取windows程序界面数据
基础知识第一次上手这种项目,大概知道是获取windows窗体的句柄,大概的方向是使用C++或者C#(虽然我这几年基本都全用python,C系列的忘得差不多,但是该捡起来还是要捡起来,哈哈哈)win7/win10查看某个进程的句柄数win7下,比较简单:任务管理器->选择 进程tab->菜单栏的查看->选择列->句柄数复选框选择,然后在进程tab页面就可以看到多了一列 句柄数 的显示。win10下,比win7隐藏的深一点点任务管理器->句柄的概念...原创 2020-11-10 11:15:26 · 10295 阅读 · 5 评论 -
PaddleOCR数字仪表识别——3.(New)PaddleOCR迁移学习
安装参考百度PaddleOCR的快速安装,记得提前安装gcc就行。(参考PaddleOCR数字仪表识别——3.paddleocr迁移学习3.1部分)1. 数据准备1.1 数据集参考PaddleOCR数字仪表识别——2(New). textrenderer使用及修改使之符合PaddleOCR数据标准1.2 字典PaddleOCR提供了一些默认的字典,位置(PaddleOCR/ppocr/utils/dict/)比如ppocr/utils/ppocr_keys_v1.txt 是一个包含6623个字原创 2020-11-06 11:12:11 · 5788 阅读 · 5 评论 -
PaddleOCR数字仪表识别——5. ppocr封装使用
1.环境准备根据paddleocr说明文档1.1 直接使用whl包使用PaddleOCR安装的时候没看清,推荐直接使用这种方式,简单。。还是要新建一个干净的conda的env,这个叫ocr好了。。conda create -n ocr python=3.7pip install paddleocr #这样安装只能安装1.0.1版本(看了下,之前在linux上安装的也才1.0.0版本,这个版本号和PaddleOCR并不一致。)# 配置jupyter kernel 所有的环境都要安装ipyker原创 2020-11-25 11:19:37 · 2180 阅读 · 5 评论 -
PaddleOCR数字仪表识别——4. pipeline
有一个数字仪表识别的问题,所以要自己先造一些数据,要收集的素材包括字体文件和背景图片文件1. 字体、背景删选1.1 字体1.1.1 标准字体图片业务场景的字体图片:1.1.2 删选字体使用 百度字体编辑器网页版:百度还是有良心的地方的,(这个字体编辑器也可以对ttf文件中不想要的字形进行删除,good)收集了28种晶体管/数码管字体,为了贴合业务需求,要进一步根据项目中仪表的数字表上的数字类型进行筛选。一个一个对比就好了(主要看数字部分的字体)DigifaceWide.ttf这个其实也原创 2020-11-04 15:18:04 · 5390 阅读 · 4 评论 -
训练一个简单的OCR识别LED数字模型
0. 问题考量0.1 端侧部署问题由于当前进行的这个OCR数字识别项目是要给人装到一个普通的台式机上作为一个应用的一部分去使用,考虑到paddleOCR其实还是依赖于PaddlePaddle这个大环境,比较重,而PaddleHub也很重,针对服务器端的,所以。。。还是放弃了看了看端侧部署,客户的机子肯定是普通的台式机windows,单就win10这一项,我觉得在客户机子上布置就很不现实。。。此外,我们确实对paddlepaddle都不熟悉。。。。用是可以,但是定制起来真的有难度。领导提议使原创 2020-11-25 11:15:04 · 1765 阅读 · 0 评论 -
pywin32+excel(二)——pywin32写入excel数字保持0的个数(保持精度)
1. 问题开发的时候遇到一个问题: 从文本文件中读取一个精度四位数的浮点数,无论是使用 eval函数,还是使用float函数,最后结果都是0.8,后面的0被忽略了,但是客户那边对这个比较在意,需要把这个后面的0都显示出来eval("0.8000")Out[7]: 0.8float("0.8000")Out[8]: 0.82.解决方案2.1 python系的解决方案依然感谢Stack Overflow,how to keep the precision when convert string原创 2020-10-26 16:09:37 · 1311 阅读 · 0 评论 -
应用程序无法正常启动0xc000007b win7
之前自己用vs2019写的一个单纯的控制台程序(调用使用了MFC的dll程序),在安装了vs2019的win7上可以运行,但是在没有安装vs2019的电脑上就不能运行,提示了标题错误。搜索过一些常规解决方案,例如:无效:解决1这个问题,根据 应用程序无法正常启动0xc000007b怎么解决。主要是由于DirectX 9.0被损坏,需要下载软件运行一下(主要还是win7系统缺失了很多dll文件造成的)打开DirectX修复工具,检测并修复工具->选项->扩展->开始扩展(联网状原创 2020-10-16 12:32:14 · 7249 阅读 · 2 评论 -
PaddleOCR数字仪表识别——2(New). textrenderer使用及修改使之符合PaddleOCR数据标准
1. 准备工作1.1 文件准备按照textrenderer-github网站的安装步骤安装完之后,可以看到一个example_data的文件夹,里面主要就是这么几个文件夹。如果想使用这个现有的example来产生自己的数据,需要做这么几个事情bg文件夹,存放要产生的图片的背景(图片颜色不重要,因为产出的图都是灰度图)char文件夹 默认有两个txt文件,chn.txt和eng.txt,里面放的就是要产生的 文本的字符,一行一个(我做数字识别,就是10行,每行分别是0-9这10个数字,注意:原创 2020-10-14 14:50:36 · 4313 阅读 · 12 评论 -
OCR数字仪表识别-PaddleOCR介绍(官方视频及经验分享)
Github-PaddlePaddle/PaddleOCR两个视频地址:AI快车道2020-PaddleOCR原创 2020-10-10 16:03:41 · 7776 阅读 · 0 评论 -
PaddleOCR数字仪表识别——3.paddleocr迁移学习
3. 迁移学习主要还是使用PaddleOCR的模型来迁移,文本检测和识别主要参考以下内容:https://github.com/PaddlePaddle/PaddleOCR/blob/develop/README_ch.md3.1 安装PaddleOCR3.1.1 安装docker以前配置CVAT的时候就安装过,参考https://www.jianshu.com/p/07e405c01880最简单的方式就是使用阿里云的景象直接安装curl -fsSL https://get.docker.c原创 2020-10-10 11:21:39 · 8933 阅读 · 6 评论 -
PaddleOCR数字仪表识别——2.数据合成及数据集制作
2. 数据合成工具PaddleOCR提供了许多数据合成工具:https://github.com/PaddlePaddle/PaddleOCR/blob/develop/README_ch.md也就是说这些数据合成工具其实也是百度从别的地方找的,做了个整合的目录,第一个应该是最推荐的。2.1 text_renderer只能用来产生 文字识别(不是文字检测 定位)的图片(产出的是很小很精确的只有文字部分的图片,灰度图)text_renderer是最常用的也是目前看起来效果比较好的:htt原创 2020-10-10 11:20:42 · 10416 阅读 · 13 评论 -
PaddleOCR数字仪表识别——1.字体背景删选
有一个数字仪表识别的问题,所以要自己先造一些数据,要收集的素材包括字体文件和背景图片文件1. 字体、背景删选1.1 字体1.1.1 标准字体图片业务场景的字体图片:1.1.2 删选字体使用 百度字体编辑器网页版:百度还是有良心的地方的,(这个字体编辑器也可以对ttf文件中不想要的字形进行删除,good)收集了28种晶体管/数码管字体,为了贴合业务需求,要进一步根据项目中仪表的数字表上的数字类型进行筛选。一个一个对比就好了(主要看数字部分的字体)DigifaceWide.ttf这个其实原创 2020-10-10 11:19:33 · 2342 阅读 · 0 评论 -
pywin32+excel(四)使用pywin32操作excel进阶
1. 关于文本文件的处理虽然每一行的项都是逗号隔开,像csv,每行逗号隔开三个项。分别是行号,列号,对应该行列的单元格内容原创 2020-11-25 11:15:48 · 4240 阅读 · 0 评论 -
Visual Studio关于hook项目的简单使用
参考 DLL注入_拦截技术之Hook方式: 可知如果我想要使用hook的dll注入方式来获取其他程序的数据,则关键的对象有:操作 启动程序和给dll传递程序线程id 的一个程序对目标程序的消息进行处理的dll目标程序.exedll文件编写操作dll文件和目标程序的 代码编写新建项目新建项目->找到 控制台应用(在Windows终端运行代码)->填写其他项目后,看到 将解决方案和项目放在同一目录中。根据 终于理解了解决方案和项目之间的关系了可知:项目和解决方案的关系是:原创 2020-09-14 09:23:25 · 2168 阅读 · 0 评论 -
查看某软件的所有窗口句柄
使用spy++查看某窗口所有句柄点击 监视->进程->找到自己关注的目标程序->点击主线程(每个程序肯定有个主线程 不行就一个一个点进去看)->看到所有窗口组件原创 2020-09-14 09:22:56 · 1990 阅读 · 0 评论 -
正确访问其他程序的 MSFlexGrid类
问题说明获取右下方的表格数据,通过Spy++可知,该表格控件所属的类是:MSFlexGridWndClass 。不幸的是,这个控件希望的曙光感谢MSDN 在我搜索 MSFlexGridWndClass MSDN时 看到了一个Forums—微软人员对这个问题MSFlexGrid UIAutomation C++ API的回答 : MSFlexGridWndClass 是MSFlexGrid控件的一个实例,控件属于的类 其实叫 MSFlexGrid 好了 继续调研,我又觉得自己可以了~原创 2020-09-10 13:10:34 · 2032 阅读 · 9 评论 -
python使用win32截取某窗口中特定部分
提取要识别的程序中表格部分的图片感谢spy++,关于获取某程序中某部分窗口截图的实现,参考:python 使用win32api截图全解释python使用win32api截图并回收资源Windows ->Apps->Win32->API->Windows GDI->Wingdi.h->BitBlt function 关于这个函数的使用,这个网页中给了一个例子:For an example, see Capturing an Image. 重点在以下部分原创 2020-08-27 10:39:02 · 3817 阅读 · 0 评论 -
python打包含有参数传递的exe程序
参考链接:json解析Python中json模块的load/loads方法实战及参数详解记住一点,load方法的作用对象是文件流(with open之后的f句柄),loads方法的作用对象是字符串。参数传递常见的就是 sys.argv还有argparse(这个库不是内置的,需要pip install argparse),前者功能比较简单,能提供的有限,后者虽然不是内置的,需要安装,但是确实功能比较强大。所以在开发时选择后者(如果最后打包程序或者在用户环境运行有问题,那就考虑换掉,使用前者,这原创 2020-08-20 16:50:54 · 14695 阅读 · 8 评论 -
pywin32+excel(一)——Python使用win32com/pywin32操作excel
正式使用一千个读者一千个哈姆雷特,单纯 save()表 close()工作薄 还有quit()Excel APP,这三个写法就有很多不同的解释。。。不喜欢解释太多,直接看代码吧,给一个简单的读取某个excel文件 修改后保存的例子。excel = win32.Dispatch('Excel.Application')excel.Visible = False # 如果是True 会打开excel程序(界面)excel.DisplayAlerts = 0 # 不显示警告信息wb = exce原创 2020-08-15 11:37:30 · 22668 阅读 · 14 评论 -
调研-python使用win32com模块操纵excel
背景介绍支持库pypiwin32中含有win32com模块,安装(这个 pypiwin32没有github项目,主页:pypiwin32。> pip install pypiwin32 // 我是使用这种最简单的方式安装完成的> python -m pip install pypiwin32// 可能有些安装不成 需要用这种方式 或者> pip install pypiwin32 --user不使用python自带的一些操作excel的库是因为这次的项目对excel格式要求原创 2020-08-06 17:03:29 · 8753 阅读 · 8 评论