File size: 2,306 Bytes
3d85c80 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
import streamlit as st
import cv2
import numpy as np
from PIL import Image
# Título do aplicativo
st.title("Analisador de Imagens Médicas com OpenCV")
st.subheader("Carregue uma imagem médica para análise e melhoria.")
# Carregar a imagem
uploaded_file = st.file_uploader("Envie a imagem médica (formatos aceitos: .jpg, .png, .jpeg)", type=["jpg", "png", "jpeg"])
if uploaded_file is not None:
# Carregar a imagem com OpenCV
image = Image.open(uploaded_file)
image = np.array(image)
# Mostrar a imagem original
st.image(image, caption="Imagem Original", use_column_width=True)
# Opções de processamento
st.sidebar.header("Opções de Processamento")
process_option = st.sidebar.selectbox("Escolha o processamento:",
["Conversão para Escala de Cinza",
"Filtro de Borrão (Blur)",
"Detecção de Bordas (Canny)",
"Equalização de Histograma"])
if process_option == "Conversão para Escala de Cinza":
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
st.image(gray_image, caption="Imagem em Escala de Cinza", use_column_width=True, channels="GRAY")
elif process_option == "Filtro de Borrão (Blur)":
blur_image = cv2.GaussianBlur(image, (5, 5), 0)
st.image(blur_image, caption="Imagem com Filtro de Borrão", use_column_width=True)
elif process_option == "Detecção de Bordas (Canny)":
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray_image, 100, 200)
st.image(edges, caption="Bordas Detectadas", use_column_width=True, channels="GRAY")
elif process_option == "Equalização de Histograma":
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
equalized_image = cv2.equalizeHist(gray_image)
st.image(equalized_image, caption="Imagem com Histograma Equalizado", use_column_width=True, channels="GRAY")
# Botão para salvar o resultado
if st.button("Salvar Imagem Processada"):
result_path = "imagem_processada.png"
cv2.imwrite(result_path, eval(process_option.lower().replace(" ", "_") + "_image"))
|