DHEIVER commited on
Commit
f48baaa
1 Parent(s): ac69c6b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -30
app.py CHANGED
@@ -2,7 +2,6 @@ import gradio as gr
2
  import numpy as np
3
  from tensorflow.keras.preprocessing import image
4
  from tensorflow.keras.models import load_model
5
- import matplotlib.pyplot as plt
6
  from PIL import Image as PILImage
7
  import io
8
 
@@ -10,50 +9,32 @@ import io
10
  model = load_model('model_1.0000.h5')
11
 
12
  def predict_and_invert(input_image):
13
- # Redimensionar a imagem para (224, 224) - o tamanho esperado pelo modelo
14
  input_image = input_image.resize((224, 224))
15
-
16
- # Converter a imagem para o formato correto
17
- img = image.img_to_array(input_image)
18
- img = img / 255.0 # Normalizar a imagem (como fizemos durante o treinamento)
19
-
20
- # Ajustar a imagem para o tamanho correto (224, 224, 3)
21
  img = np.expand_dims(img, axis=0)
22
- img = img[:, :224, :224, :] # Ajustar para 224x224 pixels
23
 
24
  prediction = model.predict(img)
25
 
26
- # Interpretar o resultado
27
  if prediction[0][0] > 0.5:
28
- result = " uma alta probabilidade de anomalia cardíaca (Doente)"
29
  else:
30
- result = "Não evidência significativa de anomalia cardíaca (Normal)"
31
 
32
- # Inverter a imagem
33
- img_inverted = 1 - img # Inverter a imagem
34
 
35
- # Converter a imagem invertida de volta para o formato PIL
36
- img_inverted_pil = PILImage.fromarray(np.uint8(img_inverted[0] * 255))
37
  img_inverted_bytes = io.BytesIO()
38
  img_inverted_pil.save(img_inverted_bytes, format='PNG')
39
 
40
  return result, img_inverted_pil
41
 
42
- # Criar duas interfaces Gradio idênticas
43
- iface1 = gr.Interface(
44
- fn=predict_and_invert,
45
- inputs=gr.inputs.Image(type="pil", label="Carregar uma imagem"),
46
- outputs=["text", "image"], # Agora temos duas saídas: texto e imagem
47
- title="Modelo de Classificação de Anomalias Cardíacas - Interface 1"
48
- )
49
-
50
- iface2 = gr.Interface(
51
  fn=predict_and_invert,
52
  inputs=gr.inputs.Image(type="pil", label="Carregar uma imagem"),
53
- outputs=["text", "image"], # Agora temos duas saídas: texto e imagem
54
- title="Modelo de Classificação de Anomalias Cardíacas - Interface 2"
55
  )
56
 
57
- # Executar ambas as interfaces Gradio
58
- iface1.launch()
59
- iface2.launch()
 
2
  import numpy as np
3
  from tensorflow.keras.preprocessing import image
4
  from tensorflow.keras.models import load_model
 
5
  from PIL import Image as PILImage
6
  import io
7
 
 
9
  model = load_model('model_1.0000.h5')
10
 
11
  def predict_and_invert(input_image):
 
12
  input_image = input_image.resize((224, 224))
13
+ img = image.img_to_array(input_image) / 255.0
 
 
 
 
 
14
  img = np.expand_dims(img, axis=0)
15
+ img = img[:, :224, :224, :]
16
 
17
  prediction = model.predict(img)
18
 
 
19
  if prediction[0][0] > 0.5:
20
+ result = "Anomalia cardíaca (Doente)"
21
  else:
22
+ result = "Normal (Sem anomalia)"
23
 
24
+ img_inverted = 1 - img[0] # Inverter a imagem
 
25
 
26
+ img_inverted_pil = PILImage.fromarray(np.uint8(img_inverted * 255))
 
27
  img_inverted_bytes = io.BytesIO()
28
  img_inverted_pil.save(img_inverted_bytes, format='PNG')
29
 
30
  return result, img_inverted_pil
31
 
32
+ # Criar uma interface Gradio
33
+ iface = gr.Interface(
 
 
 
 
 
 
 
34
  fn=predict_and_invert,
35
  inputs=gr.inputs.Image(type="pil", label="Carregar uma imagem"),
36
+ outputs=["text", "image"]
 
37
  )
38
 
39
+ # Executar a interface Gradio
40
+ iface.launch()