/
ColorDeconvolution.py
52 lines (33 loc) · 1.28 KB
/
ColorDeconvolution.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import skimage.io
from histomicstk.cli.utils import CLIArgumentParser
import large_image
import histomicstk.preprocessing.color_deconvolution as htk_cd
from histomicstk.cli import utils
import logging
logging.basicConfig()
def main(args):
# Read Input Image
print('>> Reading input image')
print(args.inputImageFile)
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])
if __name__ == "__main__":
main(CLIArgumentParser().parse_args())