从PNG图像中删除不需要的文本

时间:2019-04-30 17:11:31

标签: python python-3.x python-imaging-library python-tesseract

我正在尝试使用Tesseract(与pytesseract一起)来识别PNG文件中的某些文本。该图像取自某些使用base64的网页img元素。我已经将所有的base64字符串放入了另一个文件(data.txt)中。

这是对图像运行Tesseract而不进行更改的结果:

import base64
import io
import pytesseract
from PIL import Image, ImageEnhance


data = open('data.txt')
memory_file = io.BytesIO(base64.b64decode(data.read()))
image_file = Image.open(memory_file)
image_file.show()
ocr = pytesseract.image_to_string(image_file, lang='spa')
print(ocr)

输出:

enter image description here

DATOS DEL VEHICULO:

Nº PLACA: A10502

Nº SERIE: JTDBZ41E2AJO48448
Nº VIN: JTDBZ41E2AJO48448
Nº MOTOR: 3223289920

COLOR: ROJO MICA METALICO
MARCA: TOYOTA

MODELO: COROLLA

PLACA VIGENTE: A10502
PLACA ANTERIOR: NINGUNA

ESTADO: EN CIRCULACION
ANOTACIONES: NINGUNA
SEDE: LIMA

PROPIETARIOIS):
ALVARADO NINALAYA1 EVA

我正在尝试减少图像中的噪点,以便Tesseract更容易提取文本。这就是我要做的:

import base64
import io
import pytesseract
from PIL import Image, ImageEnhance

data = open('data.txt')
memory_file = io.BytesIO(base64.b64decode(data.read()))
image_file = Image.open(memory_file)

pixels = image_file.load()
for i in range(image_file.size[0]): # for every pixel:
    for j in range(image_file.size[1]):
        pxs = pixels[i, j]
        if pxs[0] > 45:
            pixels[i, j] =  (0, 0, 0, 0)

image_file.show()
ocr = pytesseract.image_to_string(image_file, lang='spa')
print(ocr)

enter image description here

A10502
JTDBZ41E2AJO48448
JTDBZ41E2AJO48448
3223289920

ROJO MICA METAL)CO
TOYOTA

COROLLA

A10502

NINGUNA

EN CIRCULAC(ON
NINGUNA

UMA

ALVARADO N!NALAYA1 EVA

即使我减少了不必要的文字,tesseract似乎也很难阅读。我还能做些什么吗?

0 个答案:

没有答案