
import cv2
import pytesseract
from matplotlib import pyplot as plt

from PIL import Image

# Funció per visualitzar la imatge
def display(im_path):
    dpi = 80
    im_data = plt.imread(im_path)
    height, width = im_data.shape[:2]
    figsize = width / float(dpi), height / float(dpi)
    fig = plt.figure(figsize=figsize)
    ax = fig.add_axes([0, 0, 1, 1])
    ax.axis('off')
    ax.imshow(im_data, cmap='gray')
    plt.show()


# Funció per al pre-processament d'imatges per augmentar la qualitat del output
def grayscale(image):
    return cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)


# Funció - crida al executable que processa les imatges (OCR)
def process(image):
    pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
    #ocr_result = pre_process(image)
    ocr_result = pytesseract.image_to_string(image)
    if ocr_result:
        return ocr_result


# Funció Main per al testeig de totes les funcionalitats
if __name__ == '__main__':
    text = ""
    image_file_front = "sample_imgs/DNI_example_front.png"
    image_file_back = "sample_imgs/DNI_example_back.png"
    img1 = cv2.imread(image_file_front)
    img2 = cv2.imread(image_file_back)
    text += process(img1)
    text += process(img2)

    print(text)