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

原创粉丝点击