Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
**it_kwargs)
# get tile image
im_tile = tile_info['tile'][:, :, :3]
# perform color normalization
im_nmzd = htk_cnorm.reinhard(im_tile,
args.reference_mu_lab,
args.reference_std_lab,
src_mu=src_mu_lab,
src_sigma=src_sigma_lab)
# perform color decovolution
w = cli_utils.get_stain_matrix(args)
im_stains = htk_cdeconv.color_deconvolution(im_nmzd, w).Stains
im_nuclei_stain = im_stains[:, :, 0].astype(np.float)
# segment nuclear foreground
im_nuclei_fgnd_mask = im_nuclei_stain < args.foreground_threshold
# segment nuclei
im_nuclei_seg_mask = htk_nuclear.detect_nuclei_kofahi(
im_nuclei_stain,
im_nuclei_fgnd_mask,
args.min_radius,
args.max_radius,
args.min_nucleus_area,
args.local_max_search_radius
)
ts = large_image.getTileSource(args.inputImageFile)
im_input = ts.getRegion(
format=large_image.tilesource.TILE_FORMAT_NUMPY,
**utils.get_region_dict(args.region, args.maxRegionSize, ts)
)[0]
# Create stain matrix
print('>> Creating stain matrix')
w = utils.get_stain_matrix(args)
print(w)
# Perform color deconvolution
print('>> Performing color deconvolution')
im_stains = htk_cd.color_deconvolution(im_input, w).Stains
# write stain images to output
print('>> Outputting individual stain images')
print(args.outputStainImageFile_1)
skimage.io.imsave(args.outputStainImageFile_1, im_stains[:, :, 0])
print(args.outputStainImageFile_2)
skimage.io.imsave(args.outputStainImageFile_2, im_stains[:, :, 1])
print(args.outputStainImageFile_3)
skimage.io.imsave(args.outputStainImageFile_3, im_stains[:, :, 2])
im_input = skimage.io.imread(args.inputImageFile)[:, :, :3]
# Create stain matrix
print('>> Creating stain matrix')
w_init = np.array([args.stainColor_1, args.stainColor_2]).T
print w_init
# Perform color deconvolution
print('>> Performing color deconvolution')
res = htk_cdeconv.sparse_color_deconvolution(
im_input, w_init, args.beta)
w_est = np.concatenate((res.Wc, np.zeros((3, 1))), 1)
res = htk_cdeconv.color_deconvolution(im_input, w_est)
# write stain images to output
print('>> Outputting individual stain images')
print args.outputStainImageFile_1
skimage.io.imsave(args.outputStainImageFile_1, res.Stains[:, :, 0])
print args.outputStainImageFile_2
skimage.io.imsave(args.outputStainImageFile_2, res.Stains[:, :, 1])
print args.outputStainImageFile_3
skimage.io.imsave(args.outputStainImageFile_3, res.Stains[:, :, 2])
REFERENCE_STD_LAB,
src_mu=src_mu_lab,
src_sigma=src_sigma_lab
)
# perform color decovolution
if args.deconv_method == 'ruifrok':
w = cli_utils.get_stain_matrix(args)
im_stains = htk_cdeconv.color_deconvolution(
im_nmzd, w).Stains.astype(np.float)[:, :, :2]
elif args.deconv_method == 'macenko':
w_est = htk_cdeconv.rgb_separate_stains_macenko_pca(im_tile, 255)
im_stains = htk_cdeconv.color_deconvolution(
im_tile, w_est, 255).Stains.astype(np.float)
ch1 = htk_cdeconv.find_stain_index(
htk_cdeconv.stain_color_map[args.stain_1], w_est)
ch2 = htk_cdeconv.find_stain_index(
htk_cdeconv.stain_color_map[args.stain_2], w_est)
im_stains = im_stains[:, :, [ch1, ch2]]
else:
raise ValueError('Invalid deconvolution method parameter.')
# =========================================================================
# ====================== Fuse the stain1 & stain2 pix======================
# =========================================================================
# compute nuclear foreground mask