Spaces:
Runtime error
Runtime error
| import cv2 | |
| import requests | |
| import time | |
| import os | |
| import gradio as gr | |
| def textdetect(img): | |
| if img is not None: | |
| cv2.imwrite("input.jpg",img) | |
| #if flag == True: | |
| with open('input.jpg', 'rb') as f: | |
| data = f.read() | |
| r = requests.post(os.environ["endpoint"],data=data,headers={"Ocp-Apim-Subscription-Key":os.environ["key"],"Content-Type": "application/octet-stream"}) | |
| time.sleep(3) | |
| try: | |
| r2 = requests.get(r.headers['Operation-Location'],headers={"Ocp-Apim-Subscription-Key":os.environ["key"]}) | |
| my_dict = {} | |
| print(r2.json()) | |
| lines=[] | |
| for line in r2.json()['analyzeResult']['readResults'][0]['lines']: | |
| lines.append(line['text']) | |
| #st.markdown(f"<h1 style='text-align:center;font-family:cursive;'>{line['text']}</h1>",unsafe_allow_html=True) | |
| for word in line['words']: | |
| my_dict[word['text']] = word['confidence'] | |
| #for key in my_dict: | |
| #st.metric(label='',value=f"{key}", delta=f"{my_dict[key]*100} %") | |
| #st.progress(my_dict[key]) | |
| print(lines) | |
| s = '\n'.join(lines) | |
| #s = '<h1>' +s+ '</h1>' | |
| return (s,my_dict) | |
| except: | |
| return 'Something went wrong, try refreshing',None | |
| else: | |
| return None,None | |
| css = """ | |
| footer {display:none !important} | |
| .output-markdown{display:none !important} | |
| .gr-button-primary { | |
| z-index: 14; | |
| height: 43px; | |
| left: 0px; | |
| top: 0px; | |
| padding: 0px; | |
| cursor: pointer !important; | |
| background: none rgb(17, 20, 45) !important; | |
| border: none !important; | |
| text-align: center !important; | |
| font-family: Poppins !important; | |
| font-size: 14px !important; | |
| font-weight: 500 !important; | |
| color: rgb(255, 255, 255) !important; | |
| line-height: 1 !important; | |
| border-radius: 12px !important; | |
| transition: box-shadow 200ms ease 0s, background 200ms ease 0s !important; | |
| box-shadow: none !important; | |
| } | |
| .gr-button-primary:hover{ | |
| z-index: 14; | |
| height: 43px; | |
| left: 0px; | |
| top: 0px; | |
| padding: 0px; | |
| cursor: pointer !important; | |
| background: none rgb(66, 133, 244) !important; | |
| border: none !important; | |
| text-align: center !important; | |
| font-family: Poppins !important; | |
| font-size: 14px !important; | |
| font-weight: 500 !important; | |
| color: rgb(255, 255, 255) !important; | |
| line-height: 1 !important; | |
| border-radius: 12px !important; | |
| transition: box-shadow 200ms ease 0s, background 200ms ease 0s !important; | |
| box-shadow: rgb(0 0 0 / 23%) 0px 1px 7px 0px !important; | |
| } | |
| .hover\:bg-orange-50:hover { | |
| --tw-bg-opacity: 1 !important; | |
| background-color: rgb(229,225,255) !important; | |
| } | |
| .to-orange-200 { | |
| --tw-gradient-to: rgb(37 56 133 / 37%) !important; | |
| } | |
| .from-orange-400 { | |
| --tw-gradient-from: rgb(17, 20, 45) !important; | |
| --tw-gradient-to: rgb(255 150 51 / 0); | |
| --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important; | |
| } | |
| .group-hover\:from-orange-500{ | |
| --tw-gradient-from:rgb(17, 20, 45) !important; | |
| --tw-gradient-to: rgb(37 56 133 / 37%); | |
| --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important; | |
| } | |
| .group:hover .group-hover\:text-orange-500{ | |
| --tw-text-opacity: 1 !important; | |
| color:rgb(37 56 133 / var(--tw-text-opacity)) !important; | |
| } | |
| """ | |
| with gr.Blocks(title="Sketchpad Text Detection | Data Science Dojo", css=css) as demo: | |
| with gr.Row(): | |
| inp = gr.Paint() | |
| but = gr.Button('Submit',variant='primary') | |
| with gr.Row(): | |
| with gr.Column(): | |
| out1 = gr.Text(label='Lines') | |
| with gr.Column(): | |
| out2 = gr.Label(label='Words') | |
| but.click(textdetect,inputs =[inp],outputs = [out1,out2]) | |
| demo.launch(debug=True) |