epochTechnology/sdk.ocr
0
1import streamlit as st2from PIL import Image3import detect_with_paddle4import detect5import cv26import preproccess7import numpy as np8import fitz9 10def main():11 st.set_page_config(layout="wide")12 13 with st.container():14 st.title("Epoch Technology OCR")15 col1, col2 = st.columns(2, gap="medium")16 17 with col1:18 uploaded_file = st.file_uploader("Upload a file", type=["pdf", "jpg", "jpeg", "png"])19 if uploaded_file is not None:20 # Görüntüyü yükle21 file_extension = get_file_extension(uploaded_file.name)22 if file_extension == "pdf":23 pdf_to_images = pdf_to_image(uploaded_file)24 else:25 image = Image.open(uploaded_file)26 st.image(image, caption="Uploaded File", use_column_width=True)27 28 with col2:29 if uploaded_file is not None:30 31 if st.button(key="read",label="Read Document"):32 if file_extension == "pdf":33 extracted_text = extract_text_on_pdf(pdf_to_images)34 st.write(extracted_text)35 else:36 extracted_text = extract_text_on_image(image)37 st.write(extracted_text)38 39def extract_text_on_image(image):40 result = []41 try:42 img_array = np.array(image)43 result = detect_with_paddle.detect_paddle_OCR(img_array)44 except Exception as e:45 print(f"error:{e}")46 47 return result48def extract_text_on_pdf(pdf_to_images):49 results = []50 for image in pdf_to_images:51 try:52 result = detect_with_paddle.detect_paddle_OCR(image=image)53 results.append(result)54 except Exception as e:55 print(f"error:{e}")56 57 return results58def pdf_to_image(pdf_file):59 pdf_document = fitz.open("pdf", pdf_file.read())60 images = []61 for page_number in range(pdf_document.page_count):62 page = pdf_document[page_number]63 pixmap = page.get_pixmap(dpi=400)64 image = Image.frombytes("RGB", [pixmap.width, pixmap.height], pixmap.samples)65 img_array = np.array(image)66 img_array_bgr = cv2.cvtColor(img_array, cv2.COLOR_RGB2BGR)67 #image = preproccess.preprocess_image(img_array_bgr)68 images.append(img_array_bgr)69 pdf_document.close()70 71 for image in images:72 pil_image = Image.fromarray(image)73 st.image(pil_image, caption="Uploaded File", use_column_width=True)74 75 return images76 77 78def get_file_extension(file_name):79 # Dosya adındaki en son kısmı alarak dosya uzantısını bulma80 parts = file_name.split(".")81 if len(parts) > 1:82 return parts[-1].lower()83 else:84 return None85 86if __name__ == "__main__":87 main()