#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Transform lif files to png for easy access and visualization """ import numpy as np from readlif.reader import LifFile import skimage.io import os import microscopy_analysis as ma #%% # folder containing lif files in_dir = '../../data101220/'# data_October2020/sarcoidosis/' #'../../5April2020_control/' #healthy #'../../24December19_emphysema/' #sick # output folder out_dir = '../data_corrected_bis/sarcoidosis/' #control/ #/emphysema/ file_names = [f for f in os.listdir(in_dir) if f.endswith('lif')] file_names = ma.sort_dirlist_patient(file_names) # make output directory if it does not exist if not os.path.exists(out_dir): os.mkdir(out_dir) # run through all lif files and save as png for easy access and visualization for file in file_names: lif_in = LifFile(in_dir + file) n_im = lif_in.num_images dir_name_out = (out_dir + (file.split('.')[0]).replace(' ', '_') + '/') if not os.path.exists(dir_name_out): os.mkdir(dir_name_out) for n in range(0,n_im): im_in = lif_in.get_image(n) r,c,n_frames = im_in.dims[:3] n_ch = im_in.channels if n_ch == 3: dir_name_out_im = dir_name_out + ('/frame_%02d/' % n) if not os.path.exists(dir_name_out_im): os.mkdir(dir_name_out_im) im_out = np.zeros((r,c,n_ch), dtype='uint8') for i in range(0,n_frames): for j in range(0,n_ch): im_out[:,:,j] = np.array(im_in.get_frame(i,0,j)).transpose() skimage.io.imsave(dir_name_out_im + '/image_%02d.png' % i, im_out)