Exemple #1
0
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
Exemple #3
0
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