Si tiene una carpeta llena de imágenes que tiene algún texto que debe extraerse en una carpeta separada con el nombre de archivo de imagen correspondiente o en un solo archivo, entonces este es el código perfecto que está buscando.
Este artículo no solo le brinda la base de OCR (reconocimiento óptico de caracteres) , sino que también lo ayuda a crear output.txt
un archivo para cada imagen dentro de la carpeta principal y guardarlo en una dirección predeterminada.
Se necesitan bibliotecas –
pip3 install pillow pip3 install os-sys
También necesitará la biblioteca tesseract-oct y pytesseract . Se tesseract-ocr
puede descargar e instalar desde aquí y pytesseract
se puede instalar usandopip3 install pytesseract
A continuación se muestra la implementación de Python:
# Python program to extract text from all the images in a folder # storing the text in corresponding files in a different folder from PIL import Image import pytesseract as pt import os def main(): # path for the folder for getting the raw images path ="E:\\GeeksforGeeks\\images" # path for the folder for getting the output tempPath ="E:\\GeeksforGeeks\\textFiles" # iterating the images inside the folder for imageName in os.listdir(path): inputPath = os.path.join(path, imageName) img = Image.open(inputPath) # applying ocr using pytesseract for python text = pt.image_to_string(img, lang ="eng") # for removing the .jpg from the imagePath imagePath = imagePath[0:-4] fullTempPath = os.path.join(tempPath, 'time_'+imageName+".txt") print(text) # saving the text for every image in a separate .txt file file1 = open(fullTempPath, "w") file1.write(text) file1.close() if __name__ == '__main__': main()
Imagen de entrada:
Producción :
geeksforgeeks geeksforgeeks
Si desea almacenar todo el texto de las imágenes en un solo archivo de salida, el código será un poco diferente. La principal diferencia es que el modo del archivo en el que escribiremos cambiará a “ +a ” para agregar el texto y crear el output.txt
archivo si aún no está presente.
# extract text from all the images in a folder # storing the text in a single file from PIL import Image import pytesseract as pt import os def main(): # path for the folder for getting the raw images path ="E:\\GeeksforGeeks\\images" # link to the file in which output needs to be kept fullTempPath ="E:\\GeeksforGeeks\\output\\outputFile.txt" # iterating the images inside the folder for imageName in os.listdir(path): inputPath = os.path.join(path, imageName) img = Image.open(inputPath) # applying ocr using pytesseract for python text = pt.image_to_string(img, lang ="eng") # saving the text for appending it to the output.txt file # a + parameter used for creating the file if not present # and if present then append the text content file1 = open(fullTempPath, "a+") # providing the name of the image file1.write(imageName+"\n") # providing the content in the image file1.write(text+"\n") file1.close() # for printing the output file file2 = open(fullTempPath, 'r') print(file2.read()) file2.close() if __name__ == '__main__': main()
Imagen de entrada:
Producción:
Dio una salida del archivo único creado después de extraer toda la información de la imagen dentro de la carpeta. El formato del archivo es así:
Name of the image Content of the image Name of the next image and so on .....
¿Escribir código en un comentario? Utilice ide.geeksforgeeks.org , genere un enlace y compártalo aquí.
Publicación traducida automáticamente
Artículo escrito por amankrsharma3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA