Example #1
0
def analyze_img(filename):
    """
    It will pass the image through the whole pipeline of pre-processing, segmentation, and classification.

    Args:
        filename (str): Name of the image to be processed

    Returns:
        Translated text in a list

    """
    preprocessor = Preprocessor()
    mynet = MyNetwork()
    binarized_img = preprocessor.binarize(filename)
    binarized_img = preprocessor.removeExtras(binarized_img)
    binarized_img = preprocessor.enlargeLetters(binarized_img)
    binarized_img = preprocessor.despeckle(binarized_img)
    # # To visualize binarized image
    # cv.namedWindow("test", cv.WINDOW_NORMAL)
    # cv.imshow("test", binarized_img)
    # cv.waitKey(1000)
    _, image_lines = segmenter.dilateToSegments(binarized_img,
                                                filename,
                                                save_img_with_bb=False)
    translated_text = []
    for l, line in enumerate(image_lines):
        translated_line = []
        for i, component in enumerate(line):
            print("Starting element {}/{} of line {}/{}".format(
                i + 1, len(line), l + 1, len(image_lines)))
            letter_images = segmenter.cluster_letters(component)
            for letter in letter_images:
                # # Visualize letter that will go to the NN
                # cv.namedWindow("test", cv.WINDOW_NORMAL)
                # cv.imshow("test", letter)
                # cv.waitKey(1000)
                probabilities, predicted_letter = mynet.predict_image(letter)
                print("Predicted letter: {}".format(predicted_letter))
                translated_line.append(predicted_letter)

        translated_text.append(translated_line)
        print("Translated line is: {}".format(translated_line))
    return translated_text
Example #2
0
from preprocessor import Preprocessor
import segmenter
from recognizer import Recognizer
import cv2 as cv
import os

preprocessor = Preprocessor()

# preprocessor.dilateToSegments("./binarized-images/P583-Fg006-R-C01-R01-fused.jpg")

for filename in os.listdir("./image-data"):
    if filename.endswith("fused.jpg"):
        image_binarized = preprocessor.binarize("./image-data/" + filename)
        # image_binarized = preprocessor.cropImage(image_binarized)
        image_binarized = preprocessor.despeckle(image_binarized)
        image_binarized = preprocessor.removeExtras(image_binarized)

        image_binarized = preprocessor.enlargeLetters(image_binarized)

        cv.imwrite("./binarized-images/" + filename,
                   image_binarized)  # Save test image for testing purposes
        segmenter.print_histogram("./binarized-images/" + filename)
        linesOfBoundingBoxes = segmenter.dilateToSegments(
            image_binarized, filename)
    else:
        continue
'''

#image_binarized = preprocessor.binarize("./image-data/P344-Fg001-R-C01-R01-fused.jpg")
image_binarized = preprocessor.binarize("./image-data/P632-Fg002-R-C01-R01-fused.jpg")
image_binarized = preprocessor.cropImage(image_binarized)