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
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)