app_1 / app.py
ojoel98's picture
Update app.py
2a748e2 verified
import pandas as pd
import matplotlib.pyplot as plt
from PIL import Image
import cv2
import gradio as gr
def generate_medition(sample_img, Escala):
# Guardar imagen de muestra
im = Image.fromarray(sample_img)
im.save("sample_image.jpg")
fn = 'sample_image.jpg'
filepath = '/content/sample_image.jpg'
selected_samples = []
loaded_data_dict = {fn: {fn: {'img_file': filepath, 'Align_file': '', 'rel_file': fn, 'scale_factor': Escala, 'scale_from': 'default (1.0)'}}}
alc_notebook_fxns.select_samples_fxn(loaded_data_dict, selected_samples)
model_lib_loc = 'default'
current_model_dict = {}
alc_notebook_fxns.select_download_model_interface(current_model_dict, model_lib_loc)
grain_metadata = catalog.Metadata(name='grain_meta', thing_classes=['grain'])
predictor = non_std_cfgs.smart_load_predictor(
current_model_dict['selected_config_yaml'],
current_model_dict['selected_model_weights'],
use_cpu=True,
adj_nms_thresh='auto',
adj_thresh_test='auto')
print('Predictor loaded')
Try_contrast_enhanced_subimage = True
Try_Otsu_thresholding = True
Save_polygons = True
save_polys_bool = Save_polygons
alt_methods = [Try_contrast_enhanced_subimage, Try_Otsu_thresholding]
full_auto_str = ''
plt.switch_backend('Agg')
run_dir = gen_notebook_fxns.full_auto_proc('/content/', selected_samples, loaded_data_dict,
predictor, save_polys_bool, alt_methods,
full_auto_str, stream_output=False)
filepath = run_dir + '/mask_images/' + fn + '/' + fn + '.png'
im = Image.open(filepath)
rgb_im = im.convert('RGB')
rgb_im.save('imagef.jpg')
imagef = '/content/imagef.jpg'
img = cv2.imread(imagef, cv2.COLOR_BGR2RGB)
# Carga de los datos de medición del fragmento de ripios de perforación
file = run_dir + '/grain_dimensions/' + fn + '_grain_dimensions.csv'
print(file)
df = pd.read_csv(file)
df = df.head()
return img, df
demo = gr.Interface(fn=generate_medition, inputs=[gr.Image(label="Imagen"), gr.Radio([1,2,3,4,5,6], label="Escala de la imagen")], outputs=[gr.Image(label="Fragmento medido"), gr.Dataframe(label="Tabla de datos")], title="MEDICIÓN DE IMÁGENES DE RIPIOS DE PERFORACIÓN",
description='La siguiente interfaz medirá de forma automática fragmentos en imágenes de ripios de perforación. El usuario deberá ingresar en la parte de la izquierda la imagen a ser procesada y su escala en um/px, mientras que en la parte de la derecha se mostrará la imagen con el fragmento ya medido y una tabla con los parámetros medidos y calculados. Se recomienda ingresar imágenes sin ningún tipo de mediciones o símbolos ya que esto podría afectar en la predicción del modelo.',
article='Nota: En el caso de ingresar imágenes que no tengan relación a muestras de ripios de perforación, los autores de esta aplicación no se hacen responsables por los resultados de estas, el modelo de medición de ripios de perforación está entrenado para dar un resultado.')
demo.launch()