Update app.py
Browse files
app.py
CHANGED
|
@@ -23,15 +23,11 @@ model = project.version("8").model
|
|
| 23 |
model.confidence = 80 # Confiança do modelo
|
| 24 |
model.overlap = 25 # Sobreposição fixada em 25%
|
| 25 |
|
| 26 |
-
# 📌 Expander para Configurações Avançadas
|
| 27 |
with st.expander("⚙️ Configurações Avançadas", expanded=True):
|
| 28 |
model.confidence = st.slider("Confiança do Modelo (%)", 50, 100, 80)
|
| 29 |
resolution_option = st.radio("Escolha a Resolução da Imagem Exportada:", ["Baixa", "Média", "Alta"])
|
| 30 |
|
| 31 |
-
# 📌 Barra de Progresso com porcentagem
|
| 32 |
-
progress_bar = st.progress(0)
|
| 33 |
-
progress_text = st.empty()
|
| 34 |
-
|
| 35 |
# 📌 Função para calcular a área do polígono segmentado
|
| 36 |
def calculate_polygon_area(points):
|
| 37 |
polygon = Polygon([(p['x'], p['y']) for p in points])
|
|
@@ -82,10 +78,6 @@ def process_image(image, image_name, progress_value):
|
|
| 82 |
plt.savefig(polygon_buffer, format="png", bbox_inches='tight')
|
| 83 |
plt.close()
|
| 84 |
|
| 85 |
-
# Atualizar a barra de progresso com a porcentagem
|
| 86 |
-
progress_bar.progress(progress_value)
|
| 87 |
-
progress_text.text(f"Progresso: {progress_value}%")
|
| 88 |
-
|
| 89 |
return area, segmented_buffer, polygon_buffer, image
|
| 90 |
|
| 91 |
except Exception as e:
|
|
@@ -108,6 +100,10 @@ if upload_option == "Imagem única":
|
|
| 108 |
image = Image.open(uploaded_file)
|
| 109 |
st.image(image, caption="Imagem Original", use_container_width=True)
|
| 110 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 111 |
area, segmented_buffer, polygon_buffer, _ = process_image(image, uploaded_file.name, 100)
|
| 112 |
|
| 113 |
if area is not None:
|
|
@@ -128,17 +124,22 @@ elif upload_option == "Pasta de imagens":
|
|
| 128 |
|
| 129 |
if uploaded_files:
|
| 130 |
results_data = []
|
|
|
|
| 131 |
for i, uploaded_file in enumerate(uploaded_files):
|
| 132 |
image = Image.open(uploaded_file)
|
|
|
|
|
|
|
|
|
|
| 133 |
progress_value = int(((i + 1) / len(uploaded_files)) * 100)
|
|
|
|
|
|
|
|
|
|
| 134 |
area, segmented_buffer, polygon_buffer, original_image = process_image(image, uploaded_file.name, progress_value)
|
| 135 |
|
| 136 |
if area is not None:
|
| 137 |
results.append({"Imagem": uploaded_file.name, "Área Segmentada (px²)": area})
|
| 138 |
|
| 139 |
# Mostrar as imagens processadas
|
| 140 |
-
st.write(f"📌 **Imagem Processada: {uploaded_file.name}**")
|
| 141 |
-
st.image(original_image, caption="Imagem Original", use_container_width=True)
|
| 142 |
st.image(segmented_buffer, caption="Segmentação", use_container_width=True)
|
| 143 |
st.image(polygon_buffer, caption="Polígono", use_container_width=True)
|
| 144 |
|
|
|
|
| 23 |
model.confidence = 80 # Confiança do modelo
|
| 24 |
model.overlap = 25 # Sobreposição fixada em 25%
|
| 25 |
|
| 26 |
+
# 📌 Expander para Configurações Avançadas
|
| 27 |
with st.expander("⚙️ Configurações Avançadas", expanded=True):
|
| 28 |
model.confidence = st.slider("Confiança do Modelo (%)", 50, 100, 80)
|
| 29 |
resolution_option = st.radio("Escolha a Resolução da Imagem Exportada:", ["Baixa", "Média", "Alta"])
|
| 30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 31 |
# 📌 Função para calcular a área do polígono segmentado
|
| 32 |
def calculate_polygon_area(points):
|
| 33 |
polygon = Polygon([(p['x'], p['y']) for p in points])
|
|
|
|
| 78 |
plt.savefig(polygon_buffer, format="png", bbox_inches='tight')
|
| 79 |
plt.close()
|
| 80 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 81 |
return area, segmented_buffer, polygon_buffer, image
|
| 82 |
|
| 83 |
except Exception as e:
|
|
|
|
| 100 |
image = Image.open(uploaded_file)
|
| 101 |
st.image(image, caption="Imagem Original", use_container_width=True)
|
| 102 |
|
| 103 |
+
# 📌 Barra de Progresso movida para após a exibição da imagem original
|
| 104 |
+
progress_bar = st.progress(0)
|
| 105 |
+
progress_text = st.empty()
|
| 106 |
+
|
| 107 |
area, segmented_buffer, polygon_buffer, _ = process_image(image, uploaded_file.name, 100)
|
| 108 |
|
| 109 |
if area is not None:
|
|
|
|
| 124 |
|
| 125 |
if uploaded_files:
|
| 126 |
results_data = []
|
| 127 |
+
|
| 128 |
for i, uploaded_file in enumerate(uploaded_files):
|
| 129 |
image = Image.open(uploaded_file)
|
| 130 |
+
st.image(image, caption=f"Imagem Original - {uploaded_file.name}", use_container_width=True)
|
| 131 |
+
|
| 132 |
+
# 📌 Barra de Progresso movida para após a exibição da imagem original
|
| 133 |
progress_value = int(((i + 1) / len(uploaded_files)) * 100)
|
| 134 |
+
progress_bar = st.progress(progress_value)
|
| 135 |
+
progress_text = st.text(f"Progresso: {progress_value}%")
|
| 136 |
+
|
| 137 |
area, segmented_buffer, polygon_buffer, original_image = process_image(image, uploaded_file.name, progress_value)
|
| 138 |
|
| 139 |
if area is not None:
|
| 140 |
results.append({"Imagem": uploaded_file.name, "Área Segmentada (px²)": area})
|
| 141 |
|
| 142 |
# Mostrar as imagens processadas
|
|
|
|
|
|
|
| 143 |
st.image(segmented_buffer, caption="Segmentação", use_container_width=True)
|
| 144 |
st.image(polygon_buffer, caption="Polígono", use_container_width=True)
|
| 145 |
|