|
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 |
) |