Amandeep01 commited on
Commit
5923804
·
verified ·
1 Parent(s): 32e917e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -52
app.py CHANGED
@@ -1,53 +1,36 @@
1
- import streamlit as st
2
- import cv2
3
  import numpy as np
4
- from PIL import Image
5
- import pytesseract
6
- from deep_translator import GoogleTranslator
7
-
8
- st.set_page_config(page_title="Image Translator App", layout="centered")
9
- st.title("📄 Image Translator")
10
- st.write("Upload an image with text and get it translated directly on the image.")
11
-
12
- uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"])
13
-
14
- if uploaded_file is not None:
15
- image = Image.open(uploaded_file)
16
- image_np = np.array(image)
17
-
18
- st.image(image, caption="Original Image", use_column_width=True)
19
-
20
- # Convert image to RGB (OpenCV uses BGR by default)
21
- image_rgb = cv2.cvtColor(image_np, cv2.COLOR_RGB2BGR)
22
-
23
- # OCR - get data with bounding boxes
24
- data = pytesseract.image_to_data(image_rgb, output_type=pytesseract.Output.DICT)
25
-
26
- translator = GoogleTranslator(source='auto', target='hi')
27
-
28
- n_boxes = len(data['text'])
29
- for i in range(n_boxes):
30
- if int(data['conf'][i]) > 60: # confidence threshold
31
- x, y, w, h = data['left'][i], data['top'][i], data['width'][i], data['height'][i]
32
- text = data['text'][i]
33
- if text.strip() != "":
34
- try:
35
- translated_text = translator.translate(text)
36
-
37
- # Draw white rectangle as background for text
38
- cv2.rectangle(image_rgb, (x, y), (x + w, y + h), (255, 255, 255), -1)
39
-
40
- # Adjust font scale based on box height
41
- font_scale = h / 35
42
- font_thickness = 1
43
-
44
- # Overlay translated text, vertically aligned inside the box
45
- cv2.putText(image_rgb, translated_text, (x, y + h - 5),
46
- cv2.FONT_HERSHEY_SIMPLEX, font_scale, (0, 0, 0),
47
- font_thickness, cv2.LINE_AA)
48
- except Exception as e:
49
- print(f"Translation error for '{text}': {e}")
50
-
51
- # Convert back to RGB for PIL display
52
- result_image = cv2.cvtColor(image_rgb, cv2.COLOR_BGR2RGB)
53
- st.image(result_image, caption="Translated Image", use_column_width=True)
 
1
+ import gradio as gr
2
+ import pandas as pd
3
  import numpy as np
4
+ import pickle
5
+
6
+ def predict_diabetes(pregnancies, glucose, blood_pressure, skin_thickness, insulin, bmi, diabetes_pedigree_function, age):
7
+ # Load the model
8
+ with open("model.pkl", "rb") as f:
9
+ model = pickle.load(f)
10
+
11
+ input_data = np.array([[pregnancies, glucose, blood_pressure, skin_thickness, insulin, bmi, diabetes_pedigree_function, age]])
12
+ prediction = model.predict(input_data)
13
+ result = "Diabetic" if prediction[0] == 1 else "Not Diabetic"
14
+ return result
15
+
16
+ # Gradio Interface
17
+ description = "Diabetes Prediction Model - Enter your values below"
18
+
19
+ demo = gr.Interface(
20
+ fn=predict_diabetes,
21
+ inputs=[
22
+ gr.Number(label="Pregnancies"),
23
+ gr.Number(label="Glucose"),
24
+ gr.Number(label="Blood Pressure"),
25
+ gr.Number(label="Skin Thickness"),
26
+ gr.Number(label="Insulin"),
27
+ gr.Number(label="BMI"),
28
+ gr.Number(label="Diabetes Pedigree Function"),
29
+ gr.Number(label="Age")
30
+ ],
31
+ outputs=gr.Text(label="Prediction"),
32
+ title="Diabetes Prediction",
33
+ description=description
34
+ )
35
+
36
+ demo.launch()