Python实现PDF字符分割
来源:互联网 发布:淘宝网上袜子专卖 编辑:程序博客网 时间:2024/06/05 03:46
https://github.com/tianzhi0549/CTPN
https://github.com/meijieru/crnn.pytorch
周末加班啥也没干,编译了下这两个代码,看一下paper,大概效果论文中都有。
这边我选个一个PDF论文中一段,进行分割和翻译。如下图。
分割效果如下:
调试了几个参数,发现不太能够一个单词一个单词这样分割,将上图直接输入给CRNN是无法识别出其中的单词的。
没有办法只能将其进行分割,想过用膨胀和腐蚀等来提取一个个单词,单看看上图较为简单,可以直接按照像素进行分割,于是按照了像素进行了分割,就能够取出每一个单词,然后CRNN就能够识别了。
import cv2import numpy as npimage = cv2.imread('/home/xx/CTPN/ROIimg/0.jpg')GrayImage=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)img_ID = []m,n = GrayImage.shapeID = np.zeros(10)H = 0for i in range(n): k = 0 for j in range(m): if GrayImage[j,i]>240: k = k + 1 if k > m-3: img_ID.append(i) H = H +1second_ID = [] second_ID_I = []for i in range(1, len(img_ID)): if (img_ID[i-1]+1 == img_ID[i]): second_ID.append(img_ID[i]) second_ID_I.append(i)third_ID_I = []for i in range(len(second_ID)-1): if second_ID[i]+1 < second_ID[i+1]: third_ID_I.append(i)fouth_ID_I = []for i in range(len(third_ID_I)-1): if (third_ID_I[i+1] - third_ID_I[i] < 3): fouth_ID_I.append(i+1)for i in fouth_ID_I: third_ID_I[i] = 0lll = [x for x in third_ID_I if x != 0]last_ID = []for i in lll: last_ID.append(second_ID[i])last_ID.append(n) path = '/home/xx/CTPN/ROIimg'for i in range(len(last_ID)-1): ROI = image[:,last_ID[i]:last_ID[i+1]] save_path = path + '/'+'PRO11'+str(i)+'.jpg' cv2.imwrite(save_path, ROI)
比较简单无脑的代码,针对的分割对象只能是类似上面的图片。
分割效果如下:
能提取如上图的单词,然后输入CRNN就能够识别了,没有GPU,文字检测的时间较长,识别还是比较快的。
Ps:一个较好的github:https://github.com/AKSHAYUBHAT/DeepVideoAnalytics
阅读全文
0 0
- Python实现PDF字符分割
- c++ 字符分割实现
- python实现分割文件
- python实现验证码的非连接字符的分割算法
- python libsvm 图像分割 字符识别
- Python中split分割字符的使用
- Python基础-用多个字符分割字符串
- python+opencv实现阈值分割
- opencv实现车牌识别之字符分割
- opencv实现车牌识别之字符分割
- opencv实现车牌识别之字符分割
- 分割字符
- 字符分割
- 字符分割
- 字符分割
- python split同时用多种字符分割字符串并去除空串 简单两行代码实现
- SQL实现split函数,自定义分割字符,自定义取出第几个分割字符前的字符串
- Python 判断字符是否在字符串中 分割
- Lintcode87 Remove Node In Binary Search Treesolution 题解
- python里面的单例模式
- Extjs4 GridPanel的主要配置参数-详解
- HTML的标签
- java 代码创建图片
- Python实现PDF字符分割
- SPOJ QTree4
- 前端实现调用移动端拍照以及打开相册裁剪功能
- 商业智能—概念与主要理论
- [spring boot学习2]创建配置管理服务器及实现分布式配置管理应用
- linux的一些命令(不断补充)
- 12、Oracle:order by 排序和限制条件
- 详解Hive-CliDriver续——细读Hive源码(三)
- Linq示例