DHEIVER commited on
Commit
3c245f4
1 Parent(s): 47da19c

Create processar_imagem_de_entrada.py

Browse files
Files changed (1) hide show
  1. processar_imagem_de_entrada.py +52 -0
processar_imagem_de_entrada.py ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import time
3
+ import torch
4
+ import numpy as np
5
+ import cv2
6
+
7
+ # Função para processar a imagem de entrada
8
+ def processar_imagem_de_entrada(img, modelo, pipe, salvar_resultado=False):
9
+ try:
10
+ # Faça uma cópia da imagem original
11
+ img = img.copy()
12
+
13
+ # Coloque o modelo na GPU (se disponível) e configure-o para modo de avaliação
14
+ pipe = pipe.to(device).eval()
15
+
16
+ # Registre o tempo de início
17
+ start = time.time()
18
+
19
+ # Pré-processe a imagem e obtenha informações de dimensão
20
+ img, h, w, ori_gray, ori = ordenar_e_preprocessar_imagem(img, modelo)
21
+
22
+ # Converta a imagem para o formato esperado pelo modelo e coloque-a na GPU
23
+ img = torch.FloatTensor(img).unsqueeze(0).to(device)
24
+
25
+ # Realize a inferência do modelo sem gradientes
26
+ with torch.no_grad():
27
+ if modelo == 'AngioNet':
28
+ img = torch.cat([img, img], dim=0)
29
+ logit = np.round(torch.softmax(pipe.forward(img), dim=1).detach().cpu().numpy()[0, 0]).astype(np.uint8)
30
+
31
+ # Calcule o tempo decorrido
32
+ spent = time.time() - start
33
+ spent = f"{spent:.3f} segundos"
34
+
35
+ # Redimensione o resultado, se necessário
36
+ if h != 512 or w != 512:
37
+ logit = cv2.resize(logit, (h, w))
38
+
39
+ # Converta o resultado para um formato booleano
40
+ logit = logit.astype(bool)
41
+
42
+
43
+ # Salve o resultado em um arquivo se a opção estiver ativada
44
+ if salvar_resultado:
45
+ nome_arquivo = os.path.join(caminho_salvar_resultado, f'resultado_{int(time.time())}.png')
46
+ cv2.imwrite(nome_arquivo, img_out)
47
+
48
+ return spent, img_out
49
+
50
+ except Exception as e:
51
+ # Em caso de erro, retorne uma mensagem de erro
52
+ return str(e), None