Newer
Older
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
#!/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)