|
a |
|
b/generate_luna_histograms.py |
|
|
1 |
import cPickle as pickle |
|
|
2 |
import string |
|
|
3 |
import sys |
|
|
4 |
import time |
|
|
5 |
from itertools import izip |
|
|
6 |
import numpy as np |
|
|
7 |
from datetime import datetime, timedelta |
|
|
8 |
import utils |
|
|
9 |
import logger |
|
|
10 |
import buffering |
|
|
11 |
from configuration import config, set_configuration |
|
|
12 |
import pathfinder |
|
|
13 |
import utils_plots |
|
|
14 |
import data_iterators |
|
|
15 |
import data_transforms |
|
|
16 |
|
|
|
17 |
import matplotlib |
|
|
18 |
matplotlib.use('Agg') |
|
|
19 |
import matplotlib.pyplot as plt |
|
|
20 |
|
|
|
21 |
|
|
|
22 |
|
|
|
23 |
train_valid_ids = utils.load_pkl(pathfinder.LUNA_VALIDATION_SPLIT_PATH) |
|
|
24 |
train_pids, valid_pids = train_valid_ids['train'], train_valid_ids['valid'] |
|
|
25 |
|
|
|
26 |
all_pids = train_pids + valid_pids |
|
|
27 |
|
|
|
28 |
data_iterator = data_iterators.LunaSimpleDataGenerator(data_path=pathfinder.LUNA_DATA_PATH, patient_ids=all_pids) |
|
|
29 |
|
|
|
30 |
histograms = {} |
|
|
31 |
# bins = np.arange(-960,1700,40) |
|
|
32 |
# avg_histogram = np.zeros((bins.shape[0]-1), dtype=np.int64) |
|
|
33 |
# use buffering.buffered_gen_threaded() |
|
|
34 |
for idx, (x, pid) in enumerate(data_iterator.generate()): |
|
|
35 |
print idx, 'pid', pid |
|
|
36 |
# if (idx == 10): |
|
|
37 |
# break |
|
|
38 |
histograms[pid]= data_transforms.get_rescale_params_hist_eq(x) |
|
|
39 |
|
|
|
40 |
|
|
|
41 |
#plot avg histogram |
|
|
42 |
# width = 0.7 * (bins[1] - bins[0]) |
|
|
43 |
# center = (bins[:-1] + bins[1:]) / 2 |
|
|
44 |
# plt.bar(center, avg_histogram, align='center', width=width) |
|
|
45 |
# plt.savefig('dsb_histogram_avg.jpg') |
|
|
46 |
# plt.clf() |
|
|
47 |
|
|
|
48 |
|
|
|
49 |
pickle.dump(histograms, open( "luna_rescale_params_hist_eq.pkl", "wb" ) ) |
|
|
50 |
|
|
|
51 |
|
|
|
52 |
|