Spaces:
Sleeping
Sleeping
| from face_deid_ct import drown_volume | |
| import gradio as gr | |
| import gradio as gr | |
| import os | |
| import zipfile | |
| import shutil | |
| def process_file(input_file): | |
| cache_dir = "cache" | |
| cache_out_dir = "cache_out" | |
| output_zip_file = "output.zip" | |
| # Check if input file is a zip file | |
| if zipfile.is_zipfile(input_file.name): | |
| with zipfile.ZipFile(input_file.name, 'r') as zip_ref: | |
| # Unzip the file in 'cache' directory | |
| zip_ref.extractall(cache_dir) | |
| # Run deid function | |
| drown_volume(cache_dir, cache_out_dir, replacer='face') | |
| # Create a Zip file for 'cache_out' directory | |
| with zipfile.ZipFile(output_zip_file, 'w') as zipf: | |
| for root, dirs, files in os.walk(cache_out_dir): | |
| for file in files: | |
| zipf.write(os.path.join(root, file), | |
| os.path.relpath(os.path.join(root, file), | |
| os.path.join(cache_out_dir, '..'))) | |
| # Cleanup cache directories | |
| shutil.rmtree(cache_dir) | |
| shutil.rmtree(cache_out_dir) | |
| return output_zip_file | |
| else: | |
| raise ValueError("The provided file is not a zip file.") | |
| description = "Upload a ZIP file containing a folder with a head CT's DICOM files. The ZIP file might also contain subfolders, each one containing a head CT." | |
| inputs = gr.components.File(label="Input File") | |
| outputs = gr.components.File(label="Output File") | |
| demo = gr.Interface(fn=process_file, description=description, inputs=inputs, outputs=outputs) | |
| demo.launch() |