Update app.py
Browse files
app.py
CHANGED
@@ -10,6 +10,8 @@ import time
|
|
10 |
from sklearn.cluster import KMeans
|
11 |
import os
|
12 |
from preprocessar_imagem import preprocessar_imagem
|
|
|
|
|
13 |
device = "cuda" if torch.cuda.is_available() else "cpu"
|
14 |
|
15 |
# Função para ordenar e pré-processar a imagem de entrada
|
@@ -23,57 +25,6 @@ def ordenar_e_preprocessar_imagem(img, modelo):
|
|
23 |
# Caminho absoluto para a pasta de salvamento
|
24 |
caminho_salvar_resultado = "/Segmento_de_Angio_Coronariana_v5/Salvar Resultado"
|
25 |
|
26 |
-
# Função para processar a imagem de entrada
|
27 |
-
def processar_imagem_de_entrada(img, modelo, pipe, salvar_resultado=False):
|
28 |
-
try:
|
29 |
-
# Faça uma cópia da imagem original
|
30 |
-
img = img.copy()
|
31 |
-
|
32 |
-
# Coloque o modelo na GPU (se disponível) e configure-o para modo de avaliação
|
33 |
-
pipe = pipe.to(device).eval()
|
34 |
-
|
35 |
-
# Registre o tempo de início
|
36 |
-
start = time.time()
|
37 |
-
|
38 |
-
# Pré-processe a imagem e obtenha informações de dimensão
|
39 |
-
img, h, w, ori_gray, ori = ordenar_e_preprocessar_imagem(img, modelo)
|
40 |
-
|
41 |
-
# Converta a imagem para o formato esperado pelo modelo e coloque-a na GPU
|
42 |
-
img = torch.FloatTensor(img).unsqueeze(0).to(device)
|
43 |
-
|
44 |
-
# Realize a inferência do modelo sem gradientes
|
45 |
-
with torch.no_grad():
|
46 |
-
if modelo == 'AngioNet':
|
47 |
-
img = torch.cat([img, img], dim=0)
|
48 |
-
logit = np.round(torch.softmax(pipe.forward(img), dim=1).detach().cpu().numpy()[0, 0]).astype(np.uint8)
|
49 |
-
|
50 |
-
# Calcule o tempo decorrido
|
51 |
-
spent = time.time() - start
|
52 |
-
spent = f"{spent:.3f} segundos"
|
53 |
-
|
54 |
-
# Redimensione o resultado, se necessário
|
55 |
-
if h != 512 or w != 512:
|
56 |
-
logit = cv2.resize(logit, (h, w))
|
57 |
-
|
58 |
-
# Converta o resultado para um formato booleano
|
59 |
-
logit = logit.astype(bool)
|
60 |
-
|
61 |
-
|
62 |
-
# Salve o resultado em um arquivo se a opção estiver ativada
|
63 |
-
if salvar_resultado:
|
64 |
-
nome_arquivo = os.path.join(caminho_salvar_resultado, f'resultado_{int(time.time())}.png')
|
65 |
-
cv2.imwrite(nome_arquivo, img_out)
|
66 |
-
|
67 |
-
return spent, img_out
|
68 |
-
|
69 |
-
except Exception as e:
|
70 |
-
# Em caso de erro, retorne uma mensagem de erro
|
71 |
-
return str(e), None
|
72 |
-
|
73 |
-
# ... (resto do código) ...
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
|
78 |
# Carregar modelos pré-treinados
|
79 |
models = {
|
|
|
10 |
from sklearn.cluster import KMeans
|
11 |
import os
|
12 |
from preprocessar_imagem import preprocessar_imagem
|
13 |
+
from processar_imagem_de_entrada import processar_imagem_de_entrada
|
14 |
+
|
15 |
device = "cuda" if torch.cuda.is_available() else "cpu"
|
16 |
|
17 |
# Função para ordenar e pré-processar a imagem de entrada
|
|
|
25 |
# Caminho absoluto para a pasta de salvamento
|
26 |
caminho_salvar_resultado = "/Segmento_de_Angio_Coronariana_v5/Salvar Resultado"
|
27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
|
29 |
# Carregar modelos pré-treinados
|
30 |
models = {
|