File size: 1,469 Bytes
fb67966
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import cv2
import easyocr
import gradio as gr
from main import predict_mcq

reader = easyocr.Reader(['th','en'])
def ocr_with_easy(image):
    #gray_scale_image=get_grayscale(img)
    #thresholding(gray_scale_image)
    cv2.imwrite('image.png',image)
    image=cv2.imread('image.png')
    bounds = reader.readtext(image,paragraph="False",detail = 0)
    bounds = ''.join(bounds)
    return bounds
    
def put_in_single_list(data):
  result=[]
  final_result=[]
  for i in data:
    result.append(i.get("question_statement"))
    result.append(i.get("answer"))
    result.append(i.get("options"))
    final_result.append(result)
  return final_result

def MCQGenerator(image):
  I_text=ocr_with_easy(image)
  text={
      "input_text":I_text
  }
  Mcqs=predict_mcq(text)
  data=Mcqs.get('questions')
  print(data)
  if data is not None:
      #final_result=put_in_single_list(data)
      statement=""
      answer=""
      options=""
      for mcq in data:
        statement+=mcq.get('question_statement')+','
        answer+=mcq.get('answer')+','
        options+=mcq.get('options')[0]+','+mcq.get('options')[1]+','+mcq.get('options')[2]+','
      return statement,answer,options
  else:
      return "Null","Null","Null"

iface=gr.Interface(fn=MCQGenerator,inputs='image',outputs=[gr.components.Textbox(label="Question"),gr.components.Textbox(label="Answer"),gr.components.Textbox(label="Options")],
                  examples=[['demo.PNG']])
iface.launch(debug=True)