mdasad3617's picture
Update app.py
ca69a0e verified
raw
history blame
1.89 kB
import logging
import pytesseract
from PIL import Image
import os
import streamlit as st
# Configure logging to display debug information
logging.basicConfig(level=logging.DEBUG)
# Function to extract text from an image
def extract_text_from_image(image):
try:
logging.info("Starting text extraction from image...")
# Verify the image is not corrupted
image.verify() # Verifies the image is not corrupted
logging.info("Image opened and verified successfully.")
# Resize the image to improve performance (optional)
image = image.resize((image.width // 2, image.height // 2)) # Resize image to 50% of the original size
# Extract text using pytesseract
text = pytesseract.image_to_string(image)
logging.info("Text extraction completed successfully.")
return text
except Exception as e:
logging.error(f"An error occurred while processing the image: {str(e)}")
return f"Error: {str(e)}"
# Streamlit web application
def main():
st.title("Lab Report Analyzer")
st.markdown("Upload an image file to extract text from it.")
# File uploader widget
uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "png", "jpeg"])
if uploaded_file is not None:
# Save the uploaded file temporarily
with open("temp_image.jpg", "wb") as f:
f.write(uploaded_file.getbuffer())
# Open the image file
image = Image.open("temp_image.jpg")
# Extract text from the uploaded image
extracted_text = extract_text_from_image(image)
# Display extracted text
st.subheader("Extracted Text")
st.text(extracted_text)
# Optionally, delete the temporary file after processing
os.remove("temp_image.jpg")
if __name__ == "__main__":
main()