a b/HighResolutionSegmentationGeneration.py
1
# %% Importing packages
2
import numpy as np
3
import cv2 as cv
4
import matplotlib.pyplot as plt
5
from matplotlib import patches
6
plt.rcParams['figure.figsize'] = [5, 10]
7
import os
8
import tensorflow as tf
9
from scipy.spatial import distance
10
import time
11
from glob import glob
12
from joblib import Parallel, delayed
13
from natsort import natsorted
14
plt.rcParams['figure.figsize'] = [50, 150]
15
16
# %% Citations
17
#############################################################
18
#############################################################
19
20
21
22
# %% Defining Functions
23
#############################################################
24
#############################################################
25
26
def process_file(file,
27
                 original_seg_directory,
28
                 high_res_seg_directory,
29
                 save_directory):
30
31
    try:
32
        file_id = file.split('-')[0] + '_'
33
        high_res_file = glob(high_res_seg_directory + file_id + '*.png')
34
        assert len(high_res_file) > 0, \
35
            f'could not find the pair to {file}, skipping file!'
36
37
        original_image = cv.imread(file,cv.IMREAD_UNCHANGED)
38
        original_seg = original_image[:,:,3]
39
        high_res_seg = cv.imread(high_res_file[0],cv.IMREAD_UNCHANGED)
40
        # 1: background, 2: muscle nuclei, 3: connective nuclei
41
        # 4: muscle, 5: connective, 6: blood
42
43
        original_seg[high_res_seg==1] = 0
44
        original_seg[high_res_seg==6] = 7
45
46
        original_image[:,:,3] = original_seg
47
48
        new_name = file_id + 'ML5.png'
49
50
        os.chdir(save_directory)
51
        cv.imwrite(new_name,original_image)
52
        os.chdir(original_seg_directory)
53
54
55
    except AssertionError as e:
56
        print(e)
57
58
59
#############################################################
60
#############################################################
61
62
original_seg_directory = '/media/briancottle/Samsung_T5/ML_Dataset_3'
63
high_res_seg_directory = '/home/briancottle/Research/Semantic_Segmentation/'\
64
                        'High_Res_Ilastik_Segmentation_V10/'\
65
                        'Ilastik_Segmentation_V10/'
66
67
save_directory = '/media/briancottle/Samsung_T5/ML_Dataset_5'
68
69
if not os.path.isdir(save_directory):
70
    os.mkdir(save_directory)
71
72
os.chdir(original_seg_directory)
73
original_files = glob('*.png')
74
75
contains_names_vascular = Parallel(
76
    n_jobs=22, verbose=5)(delayed(process_file)
77
    (file = name,
78
    original_seg_directory = original_seg_directory,
79
    high_res_seg_directory = high_res_seg_directory,
80
    save_directory = save_directory) for name in original_files
81
    )