Skip to content

Instantly share code, notes, and snippets.

@Ronald-TR
Last active March 12, 2019 22:01
Show Gist options
  • Save Ronald-TR/ad41cf6bd29670ebc1d3caf860bf8c4b to your computer and use it in GitHub Desktop.
Save Ronald-TR/ad41cf6bd29670ebc1d3caf860bf8c4b to your computer and use it in GitHub Desktop.
import pytesseract as ocr
import numpy as np
import cv2
from PIL import Image
# tipando a leitura para os canais de ordem RGB
imagem = Image.open('saoluis.jpg').convert('RGB')
# convertendo em um array editável de numpy[x, y, CANALS]
npimagem = np.asarray(imagem).astype(np.uint8)
# diminuição dos ruidos antes da binarização
npimagem[:, :, 0] = 0 # zerando o canal R (RED)
npimagem[:, :, 2] = 0 # zerando o canal B (BLUE)
# atribuição em escala de cinza
im = cv2.cvtColor(npimagem, cv2.COLOR_RGB2GRAY)
# aplicação da truncagem binária para a intensidade
# pixels de intensidade de cor abaixo de 127 serão convertidos para 0 (PRETO)
# pixels de intensidade de cor acima de 127 serão convertidos para 255 (BRANCO)
# A atrubição do THRESH_OTSU incrementa uma análise inteligente dos nivels de truncagem
ret, thresh = cv2.threshold(im, 127, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
# reconvertendo o retorno do threshold em um objeto do tipo PIL.Image
binimagem = Image.fromarray(thresh)
# chamada ao tesseract OCR por meio de seu wrapper
phrase = ocr.image_to_string(binimagem, lang='por')
# impressão do resultado
print(phrase)
@prfelix
Copy link

prfelix commented Feb 2, 2019

Ao tentar fazer o codigo a cima recebo o erro:

AttributeError: module 'cv2.cv2' has no attribute 'THRESH'

Pode me ajudar?

@Ronald-TR
Copy link
Author

Em qual linha ocorre? Pois de fato, 'THRESH' não é um atributo do cv2 xD

De qualquer forma, dê uma olhada no seu import.
importe o modulo cv2 dessa maneira:

import cv2 # correto

e não a classe cv2:

from cv2 import cv2 # errado

Qualquer coisa, pra uma resposta mais rapida, me manda um email!
Abraços

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment