llmat commited on
Commit
93dd2dc
·
verified ·
1 Parent(s): ed9a3a1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -11
app.py CHANGED
@@ -7,28 +7,28 @@ from PIL import Image
7
  def get_grayscale(image):
8
  return cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
9
 
10
- def thresholding(src):
11
- return cv2.threshold(src, 127, 255, cv2.THRESH_TOZERO)[1]
12
 
13
- def ocr_with_easy(img):
14
  reader = easyocr.Reader(['en'])
15
- bounds = reader.readtext(img, paragraph="False", detail=0)
16
  bounds = ''.join(bounds)
17
  return bounds
18
 
19
- def process_image(img, steps):
20
  for step in steps:
21
  if step == "Grayscale Conversion":
22
  img = get_grayscale(img)
23
  elif step == "Thresholding":
24
- img = thresholding(img)
25
  cv2.imwrite('processed_image.png', img)
26
  return 'processed_image.png'
27
 
28
- def generate_ocr(img, steps):
29
  text_output = ''
30
- if img is not None and (img).any():
31
- processed_image_path = process_image(img, steps)
32
  text_output = ocr_with_easy(processed_image_path)
33
  else:
34
  raise gr.Error("Please upload an image and select the processing steps!")
@@ -105,17 +105,18 @@ Optical Character Recognition (OCR) is a technology used to convert different ty
105
  2. **Thresholding:** This step converts the grayscale image into a binary image, where the text is in black, and the background is in white. This makes it easier for the OCR algorithm to distinguish text from the background.
106
  3. **OCR using EasyOCR:** We use the EasyOCR library to recognize and extract text from the preprocessed image.
107
  **Interactive Tutorial:**
108
- Please upload an image and select the correct order of steps to perform OCR.
109
  """
110
 
111
  image = gr.Image()
112
  steps = gr.CheckboxGroup(choices=tutorial_steps, label="Select and order the steps for OCR")
 
113
  output = gr.Textbox(label="OCR Output")
114
  explanation = gr.Markdown(explanation_text)
115
 
116
  ocr_app = gr.Interface(
117
  fn=generate_ocr,
118
- inputs=[image, steps],
119
  outputs=output,
120
  title="Optical Character Recognition",
121
  description=explanation_text,
@@ -129,3 +130,4 @@ quiz_app = gr.TabbedInterface(
129
  )
130
 
131
  quiz_app.launch()
 
 
7
  def get_grayscale(image):
8
  return cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
9
 
10
+ def thresholding(src, threshold_value):
11
+ return cv2.threshold(src, threshold_value, 255, cv2.THRESH_BINARY)[1]
12
 
13
+ def ocr_with_easy(img_path):
14
  reader = easyocr.Reader(['en'])
15
+ bounds = reader.readtext(img_path, paragraph="False", detail=0)
16
  bounds = ''.join(bounds)
17
  return bounds
18
 
19
+ def process_image(img, steps, threshold_value):
20
  for step in steps:
21
  if step == "Grayscale Conversion":
22
  img = get_grayscale(img)
23
  elif step == "Thresholding":
24
+ img = thresholding(img, threshold_value)
25
  cv2.imwrite('processed_image.png', img)
26
  return 'processed_image.png'
27
 
28
+ def generate_ocr(img, steps, threshold_value):
29
  text_output = ''
30
+ if img is not None and img.any():
31
+ processed_image_path = process_image(img, steps, threshold_value)
32
  text_output = ocr_with_easy(processed_image_path)
33
  else:
34
  raise gr.Error("Please upload an image and select the processing steps!")
 
105
  2. **Thresholding:** This step converts the grayscale image into a binary image, where the text is in black, and the background is in white. This makes it easier for the OCR algorithm to distinguish text from the background.
106
  3. **OCR using EasyOCR:** We use the EasyOCR library to recognize and extract text from the preprocessed image.
107
  **Interactive Tutorial:**
108
+ Please upload an image and select the correct order of steps to perform OCR. You can also adjust the threshold value using the slider.
109
  """
110
 
111
  image = gr.Image()
112
  steps = gr.CheckboxGroup(choices=tutorial_steps, label="Select and order the steps for OCR")
113
+ threshold = gr.Slider(0, 255, value=127, step=1, label="Threshold Value")
114
  output = gr.Textbox(label="OCR Output")
115
  explanation = gr.Markdown(explanation_text)
116
 
117
  ocr_app = gr.Interface(
118
  fn=generate_ocr,
119
+ inputs=[image, steps, threshold],
120
  outputs=output,
121
  title="Optical Character Recognition",
122
  description=explanation_text,
 
130
  )
131
 
132
  quiz_app.launch()
133
+