Spaces:
Sleeping
Sleeping
| 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.") | |