Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix issues with newer scipy and Windows platforms #12

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions segmentation-of-nuclei/color_norm/color_normalize.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import stainNorm_Reinhard
from scipy import misc
from . import stainNorm_Reinhard
from utils import imread

class reinhard_normalizer():
def __init__(self, target_file):
target_40X = misc.imread(target_file)
target_40X = imread(target_file)
self.n_40X = stainNorm_Reinhard.Normalizer()
self.n_40X.fit(target_40X)

Expand Down
2 changes: 1 addition & 1 deletion segmentation-of-nuclei/data/nuclei_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def maybe_preprocess(config, data_path, sample_path=None):
png0_path = png_path;
png0 = imread_rgb_image(png0_path);
real_images.extend(png0[np.newaxis, ...]);
png1_path = '/'.join(png_path.split('/')[0:-1]) \
png1_path = '/'.join(png_path.split(os.path.sep)[0:-1]) \
+ '/image1_' + png_path.split('_')[-1];
png1 = imread_rgb_image(png1_path);
ref_real_images.extend(png1[np.newaxis, ...]);
Expand Down
12 changes: 6 additions & 6 deletions segmentation-of-nuclei/data/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,14 +98,14 @@ def save_config(model_dir, config):
json.dump(config.__dict__, fp, indent=4, sort_keys=True)

def synthetic_to_refer_paths(paths, config):
return ['/'.join(x.split('/')[:-2]) + '/' + \
config.synthetic_refer_dir + '/' + x.split('/')[-1] for x in paths];
return ['/'.join(x.split(os.path.sep)[:-2]) + '/' + \
config.synthetic_refer_dir + '/' + x.split(os.path.sep)[-1] for x in paths];

def synthetic_to_ground_truth_paths(paths, config):
return ['/'.join(x.split('/')[:-2]) + '/' + \
config.synthetic_gt_dir + '/' + x.split('/')[-1] for x in paths];
return ['/'.join(x.split(os.path.sep)[:-2]) + '/' + \
config.synthetic_gt_dir + '/' + x.split(os.path.sep)[-1] for x in paths];

def supervised_to_ground_truth_paths(paths, config):
return ['/'.join(x.split('/')[:-2]) + '/' + \
config.synthetic_mask_sup_dir + '/' + x.split('/')[-1] for x in paths];
return ['/'.join(x.split(os.path.sep)[:-2]) + '/' + \
config.synthetic_mask_sup_dir + '/' + x.split(os.path.sep)[-1] for x in paths];

7 changes: 2 additions & 5 deletions segmentation-of-nuclei/trainer.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
import os
import numpy as np
from tqdm import trange
from tensorflow.contrib.framework.python.ops import arg_scope
import scipy.stats as st
import glob
from scipy import misc
from PIL import Image
from skimage import color
from scipy.misc import imresize
from layers import normalize
import sys
import glob
Expand All @@ -18,7 +15,7 @@
from model import Model
from buffer import Buffer
import data.nuclei_data as nuclei_data
from utils import imwrite, imread, img_tile, synthetic_to_refer_paths
from utils import imwrite, imread, imresize, img_tile, synthetic_to_refer_paths
from preprocess import stain_normalized_tiling
from postprocess import MultiProcWatershed

Expand Down Expand Up @@ -304,7 +301,7 @@ def cnn_pred_mask(self, wsi_path, image_id):
xy_indices = [];

pred_m /= num_m;
pred_m = misc.imresize((pred_m*255).astype(np.uint8), (ori_size1, ori_size0));
pred_m = imresize((pred_m*255).astype(np.uint8), (ori_size1, ori_size0));
imwrite(outf, pred_m);
#he_outf = os.path.join(outfolder, '{}_{}_{}_{}_{}_{}_HE.png'.format(
# px, py, pw_x, pw_y, mpp, scale_factor))
Expand Down
12 changes: 6 additions & 6 deletions segmentation-of-nuclei/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,14 +98,14 @@ def save_config(model_dir, config):
json.dump(config.__dict__, fp, indent=4, sort_keys=True)

def synthetic_to_refer_paths(paths, config):
return ['/'.join(x.split('/')[:-2]) + '/' + \
config.synthetic_refer_dir + '/' + x.split('/')[-1] for x in paths];
return ['/'.join(x.split(os.path.sep)[:-2]) + '/' + \
config.synthetic_refer_dir + '/' + x.split(os.path.sep)[-1] for x in paths];

def synthetic_to_ground_truth_paths(paths, config):
return ['/'.join(x.split('/')[:-2]) + '/' + \
config.synthetic_gt_dir + '/' + x.split('/')[-1] for x in paths];
return ['/'.join(x.split(os.path.sep)[:-2]) + '/' + \
config.synthetic_gt_dir + '/' + x.split(os.path.sep)[-1] for x in paths];

def supervised_to_ground_truth_paths(paths, config):
return ['/'.join(x.split('/')[:-2]) + '/' + \
config.synthetic_mask_sup_dir + '/' + x.split('/')[-1] for x in paths];
return ['/'.join(x.split(os.path.sep)[:-2]) + '/' + \
config.synthetic_mask_sup_dir + '/' + x.split(os.path.sep)[-1] for x in paths];

1 change: 0 additions & 1 deletion segmentation-of-nuclei/visual_seg_polygons.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from scipy import misc
from PIL import Image, ImageDraw
import numpy as np
import sys
Expand Down
4 changes: 2 additions & 2 deletions training-data-synthesis/draw_mask_boundary.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ def canny_edge_on_mask(imgray):

paths = [f for f in listdir(mask_path) if isfile(join(mask_path, f))];
for path in paths:
if len(path.split('/')[-1].split('mask_')) == 1:
if len(path.split(os.path.sep)[-1].split('mask_')) == 1:
continue;
im_no = path.split('/')[-1].split('mask_')[1].split('.png')[0];
im_no = path.split(os.path.sep)[-1].split('mask_')[1].split('.png')[0];

mask = np.array(Image.open(join(mask_path, path)).convert('L'));
mask_edge = canny_edge_on_mask(((mask[:,:]>0).astype(np.uint8)*255)).astype(np.float32);
Expand Down