forked from choosehappy/HistoQC
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSaveModule.py
47 lines (35 loc) · 1.48 KB
/
SaveModule.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
import logging
import os
from skimage import io, img_as_ubyte
from distutils.util import strtobool
from skimage import color
import numpy as np
import matplotlib.pyplot as plt
def blend2Images(img, mask):
if (img.ndim == 3):
img = color.rgb2gray(img)
if (mask.ndim == 3):
mask = color.rgb2gray(mask)
img = img[:, :, None] * 1.0 # can't use boolean
mask = mask[:, :, None] * 1.0
out = np.concatenate((mask, img, mask), 2)
return out
def saveFinalMask(s, params):
logging.info(f"{s['filename']} - \tsaveUsableRegion")
mask = s["img_mask_use"]
for mask_force in s["img_mask_force"]:
mask[s[mask_force]] = 0
io.imsave(s["outdir"] + os.sep + s["filename"] + "_mask_use.png", img_as_ubyte(mask))
if strtobool(params.get("use_mask", "True")): # should we create and save the fusion mask?
img = s.getImgThumb(s["image_work_size"])
out = blend2Images(img, mask)
io.imsave(s["outdir"] + os.sep + s["filename"] + "_fuse.png", img_as_ubyte(out))
return
def saveThumbnails(s, params):
logging.info(f"{s['filename']} - \tsaveThumbnail")
# we create 2 thumbnails for usage in the front end, one relatively small one, and one larger one
img = s.getImgThumb(params.get("image_work_size", "1.25x"))
io.imsave(s["outdir"] + os.sep + s["filename"] + "_thumb.png", img)
img = s.getImgThumb(params.get("small_dim", 500))
io.imsave(s["outdir"] + os.sep + s["filename"] + "_thumb_small.png", img)
return