handwritten_doc / app.py
Manasa1's picture
Update app.py
f19c5b9 verified
import streamlit as st
from PIL import Image, ImageEnhance, ImageFilter
import pytesseract
import google.generativeai as genai
import os
# Set your Gemini API key
genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
model = genai.GenerativeModel("gemini-1.5-flash")
def preprocess_image(image):
image = image.convert("L") # grayscale
image = image.filter(ImageFilter.MedianFilter())
enhancer = ImageEnhance.Contrast(image)
image = enhancer.enhance(2)
return image
def extract_text(image):
return pytesseract.image_to_string(image)
def summarize_text(text):
prompt = f"Summarize the following handwritten note:\n\n{text}"
response = model.generate_content(prompt)
return response.text
# Streamlit UI
st.set_page_config(page_title="Handwritten Note Summarizer", layout="centered")
st.title("πŸ“ Handwritten Note Summarizer")
uploaded_file = st.file_uploader("Upload an image of handwritten notes", type=["jpg", "jpeg", "png"])
if uploaded_file:
image = Image.open(uploaded_file)
st.image(image, caption="Uploaded Image", use_column_width=True)
if st.button("Extract & Summarize"):
with st.spinner("Processing..."):
preprocessed = preprocess_image(image)
extracted_text = extract_text(preprocessed)
summary = summarize_text(extracted_text)
st.subheader("πŸ” Extracted Text")
st.text(extracted_text.strip() or "Could not extract text.")
st.subheader("🧠 Summary")
st.markdown(summary.strip() or "Summary not available.")