fns = [ os.path.splitext(_)[0] for _ in os.listdir(svs_src) if _.lower().endswith('svs') ] dst = r'\\motherserverdw\Kyu_Sync\server for undergrads\JongHa' if not os.path.exists(dst): os.mkdir(dst) # fns = ['Wirtz.Denis_OTS-19_5021-022','5619_Wirtz.Denis_OTS-19_5619-026','5619_Wirtz.Denis_OTS-19_5619-028', # '5619_Wirtz.Denis_OTS-19_5619-009','5619_Wirtz.Denis_OTS-19_5619','5619_Wirtz.Denis_OTS-19_5619-007'] fns = ['5619_Wirtz.Denis_OTS-19_5619-028'] for fn in fns: rois = [] rois, region_orgs = xml2mask(svs_src, fn, dst) for regionidx, (region, region_org) in enumerate(zip(rois, region_orgs)): dst2 = os.path.join(dst, fn + '_tile_{:d}'.format(regionidx)) if os.path.exists(dst2): continue # RGB to Haematoxylin-Eosin-DAB (HED) color space conversion. # Hematoxylin + Eosin + DAB start = time() # rgb_from_hed = np.array([[0.650, 0.704, 0.286], # [0.072, 0.990, 0.105], # [0.268, 0.570, 0.776]]) rgb_from_hed = np.array([[0.650, 0.704, 0.286], [0.072, 0.990, 0.105], [0.0, 0.0, 0.0]]) rgb_from_hed[2, :] = np.cross(rgb_from_hed[0, :], rgb_from_hed[1, :]) hed_from_rgb = scipy.linalg.inv(rgb_from_hed) Hema = separate_stains(region, hed_from_rgb)[:, :, 0] print("color deconvolution: {:.2f} sec elapsed".format(time() - start))
from rgb2hed_v1 import separate_stains from PIL import Image import pandas as pd from copy import deepcopy svs_src = r'\\10.162.80.6\Kyu_Sync\Aging\data\svs' # fns = [os.path.splitext(_)[0] for _ in os.listdir(svs_src) if _.lower().endswith('svs')] fns = ['5619_Wirtz.Denis_OTS-19_5619-038'] #'5619_Wirtz.Denis_OTS-19_5619-037','5619_Wirtz.Denis_OTS-19_5619-024','5619_Wirtz.Denis_OTS-19_5619-004','5619_Wirtz.Denis_OTS-19_5619-001', '5619_Wirtz.Denis_OTS-19_5619-002', '5619_Wirtz.Denis_OTS-19_5619-018','5619_Wirtz.Denis_OTS-19_5619-017','5619_Wirtz.Denis_OTS-19_5619-022' dst = os.path.join(svs_src, 'fibroblast_detection_v1') if not os.path.exists(dst): os.mkdir(dst) # fns = ['Wirtz.Denis_OTS-19_5021-006'] for fn in fns: rois = [] rois = xml2mask(svs_src, fn, dst) for regionidx, region in enumerate(rois): # RGB to Haematoxylin-Eosin-DAB (HED) color space conversion. # Hematoxylin + Eosin + DAB start = time() # rgb_from_hed = np.array([[0.650, 0.704, 0.286], # [0.072, 0.990, 0.105], # [0.268, 0.570, 0.776]]) rgb_from_hed = np.array([[0.650, 0.704, 0.286], [0.072, 0.990, 0.105], [0.0, 0.0, 0.0]]) rgb_from_hed[2, :] = np.cross(rgb_from_hed[0, :], rgb_from_hed[1, :]) hed_from_rgb = scipy.linalg.inv(rgb_from_hed) Hema = separate_stains(region, hed_from_rgb)[:, :, 0] print("color deconvolution: {:.2f} sec elapsed".format(time() - start)) # normalize image between 0 to 255 Hematoxylin = cv2.normalize(Hema,