def denoising_lowermiginification_guassianblur(inputsvs,magnification,dictx,patch_size ,upperlimit, lowerlimit): non_black_img,slide_dimen = readWSI(inputsvs,magnification = "5x") #sliden = np.asarray(non_black_img, dtype="int32") sliden1 = localization_with_GaussianBlur(inputsvs,non_black_img,patch_size ,upperlimit, lowerlimit) # print("Slide demensions",slide_dimen) sliden2 = mask_generation(sliden1,slide_dimen[dictx[magnification]],mask_generation_c = "G") garbage_collector() del(sliden1,non_black_img,slide_dimen) return sliden2
def denoising(inputsvs, magnification="20x", filtering="GaussianBlur", patch_size=(256, 256), upperlimit=1100, lowerlimit=300, red_value=(80, 220), green_value=(80, 200), blue_value=(80, 170), Annotation=None, Annotatedlevel=0, Requiredlevel=0): slide = OpenSlide(inputsvs) slide_dimensions = slide.level_dimensions img, slide_dimensions = readWSI(inputsvs, magnification, Annotation, Annotatedlevel, Requiredlevel) dictx = dictionary(slide_dimensions) if filtering == "GaussianBlur": out = denoising_using_GaussianBlur(inputsvs, magnification, dictx, patch_size, upperlimit, lowerlimit, Annotation, Annotatedlevel, Requiredlevel) elif filtering == "RGB": mask = denoising_RGB_Thersholding(img, slide_dimensions, magnification, dictx, patch_size, red_value, green_value, blue_value) out = np.zeros_like(img) print("cleaning image at high mignification") mask = mask.astype(np.bool) out[mask] = img[mask] out = np.where(out != [0, 0, 0], out, [255, 255, 255]) print("cleaning WSI done") # cv2.imwrite("/home/pagenet2/PageNet2/Data Preprocessing Pipeline/WSI_Precessing_test/cleanedimages/%s/cleanedsmallf.png"%(inputsvs.split("/")[-1][:-4]),out) garbage_collector() print("exisiting cleaning") else: mask = denoising_No_filters(img, slide_dimensions, magnification, dictx) out = np.zeros_like(img) print("cleaning image at high mignification") mask = mask.astype(np.bool) out[mask] = img[mask] out = np.where(out != [0, 0, 0], out, [255, 255, 255]) print("cleaning WSI done") # cv2.imwrite("/home/pagenet2/PageNet2/Data Preprocessing Pipeline/WSI_Precessing_test/cleanedimages/%s/cleanedsmallf.png"%(inputsvs.split("/")[-1][:-4]),out) garbage_collector() print("exisiting cleaning") return out
def localization_with_GaussianBlur(inputsvs,img,patch_size ,upperlimit, lowerlimit): slide1 = inputsvs slide1, slide_dims = readWSI(inputsvs) patch_x = 20 for i in range(int((len(slide1[0]))/patch_x)+1): for j in range(int((len(slide1))/patch_x)+1): sample_img = slide1[j*patch_x:j*patch_x+patch_x,i*patch_x:i*patch_x+patch_x] sample_img_new = GaussianBlur(sample_img,(patch_x,patch_x),upperlimit, lowerlimit) if sample_img_new is None: slide1[j * patch_x:j * patch_x + patch_x, i * patch_x:i * patch_x+ patch_x] = np.zeros_like(sample_img) else: slide1[j*patch_x:j*patch_x+patch_x,i*patch_x:i*patch_x+patch_x] = sample_img slide1 = np.where(slide1 != [0, 0, 0], slide1, [255, 255, 255]) garbage_collector() return slide1
def denoising_lowermiginification_guassianblur(inputsvs,magnification,dictx,patch_size ,upperlimit, lowerlimit, Annotation , Annotatedlevel , Requiredlevel): non_black_img,slide_dimen = readWSI(inputsvs,"5x",Annotation , Annotatedlevel , Requiredlevel = Requiredlevel+2) #sliden = np.asarray(non_black_img, dtype="int32") # magnification = "5x" sliden1 = localization_with_GaussianBlur(non_black_img,slide_dimen,patch_size ,upperlimit, lowerlimit,Annotation , Annotatedlevel , Requiredlevel) # print("Slide demensions",slide_dimen) magnification = magnification print(magnification) try: # cv2.imwrite("check1.png",sliden1) sliden2 = mask_generation(sliden1,slide_dimen[dictx[magnification]],mask_generation_c = "G") except: print("this image has lower magnification then the given magnification, cleaning the image at highest magnification possible") sliden2 = mask_generation(sliden1,slide_dimen[0],mask_generation_c = "G") garbage_collector() del(sliden1,non_black_img,slide_dimen) return sliden2
def denoising_using_GaussianBlur(inputsvs,magnification,dictx,patch_size ,upperlimit, lowerlimit,Annotation , Annotatedlevel , Requiredlevel): mask = denoising_lowermiginification_guassianblur(inputsvs,magnification,dictx,patch_size ,upperlimit, lowerlimit,Annotation , Annotatedlevel , Requiredlevel) # mask = cv2.bitwise_not(mask) print("cleanedimage at low maginfication done") img,slide_dimensions= readWSI(inputsvs,magnification ,Annotation , Annotatedlevel , Requiredlevel) img = mask*img img[np.where((img == [0,0,0]).all(axis = 2))] = [255,255,255] # print("loading high magnification image") # out = np.zeros_like(img) # img = np.asarray(img, dtype="int32") # cv2.imwrite("check2.png",img) # print("cleaning image at high mignification") # mask = mask.astype(np.bool) # out[mask] = img[mask] # cv2.imwrite("check3.png",out) # out[np.where((out == [0,0,0]).all(axis = 2))] = [255,255,255] # # out = black_to_white(out) # print("cleaning WSI done") # cv2.imwrite("check4.png",out) garbage_collector() print("exisiting cleaning") return img