Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| import cv2 | |
| import pytesseract | |
| import requests | |
| import numpy as np | |
| import os | |
| # Set the Tesseract command path | |
| pytesseract.pytesseract.tesseract_cmd = '/usr/local/bin/tesseract' | |
| # Detecting characters using PyTesseract | |
| def detectChar(img): | |
| hImg, wImg, _ = img.shape | |
| boxes = pytesseract.image_to_boxes(img) | |
| # Create an image for displaying boxes | |
| img_with_boxes = img.copy() | |
| for b in boxes.splitlines(): | |
| b = b.split(' ') | |
| x, y, w, h = int(b[1]), int(b[2]), int(b[3]), int(b[4]) | |
| char_text = b[0] | |
| # Draw boxes on the image | |
| cv2.rectangle(img_with_boxes, (x, hImg - y), (w, hImg - h), (0, 255, 0), 2) # Green rectangle for individual character | |
| cv2.putText(img_with_boxes, char_text, (x, hImg - y + 25), cv2.FONT_HERSHEY_COMPLEX, 1, (50, 50, 255), 2) | |
| # Display the image with character boxes using Streamlit | |
| st.image(img_with_boxes, caption="Image with Character Boxes", use_column_width=True) | |
| # Extract text for spell-checking | |
| detected_text = ''.join([b.split()[0] for b in boxes.splitlines()]) | |
| print(detected_text) | |
| # Perform spell-check using LanguageTool API | |
| suggestions = spell_check(detected_text) | |
| # Display spell-check suggestions | |
| if suggestions: | |
| # st.write("Spell Check only") | |
| for suggestion in suggestions: | |
| st.write(suggestion) | |
| # print(suggestion) | |
| else: | |
| st.write("No suggestions or error in spell-checking.") | |
| # Function to perform spell-check using LanguageTool API | |
| def spell_check(text): | |
| api_url = "https://api.languagetool.org/v2/check" | |
| data = { | |
| 'text': text, | |
| 'language': 'en-US', | |
| } | |
| response = requests.post(api_url, data=data) | |
| result = response.json() | |
| if 'matches' in result: | |
| suggestions = [match['message'] for match in result['matches']] | |
| return suggestions | |
| else: | |
| return [] | |
| # Streamlit UI | |
| st.title("Pyresearch checker Detection and Spell-checking") | |
| uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"]) | |
| if uploaded_file is not None: | |
| image_data = np.frombuffer(uploaded_file.read(), np.uint8) | |
| image = cv2.imdecode(image_data, cv2.IMREAD_COLOR) | |
| image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) | |
| st.image(image_rgb, caption="Uploaded Image.", use_column_width=True) | |
| if st.button("Detect Characters and Spell-check"): | |
| detectChar(image_rgb) |