def get_filtered_segmentation(dataitem, params):
    nuc_label_image = segmentation_from_nuclear_channel_and_markers(
        dataitem.fishimage,
        skimage.measure.label(dataitem.scaled_markers),
        params
    )

    segmentation = segmentation_from_cellmask_and_label_image(
        dataitem.cell_mask(params),
        nuc_label_image
    )

    scaled_good_mask = scale_segmentation(dataitem.good_mask, dataitem.maxproj)
    labelled_points = skimage.measure.label(scaled_good_mask)
    rprops = skimage.measure.regionprops(labelled_points)
    region_centroids = [r.centroid for r in rprops]
    icentroids = [(int(r), int(c)) for r, c in region_centroids]
    good_regions = [segmentation[r, c] for r, c in icentroids]

    filtered_segmentation = filter_segmentation_by_region_list(
        segmentation,
        good_regions
    )

    return filtered_segmentation
Example #2
0
def get_filtered_segmentation(dataitem, params):

    # nuc_label_image = segmentation_from_nuclear_channel_and_markers(
    #     dataitem.fishimage, 
    #     skimage.measure.label(dataitem.scaled_markers),
    #     params
    # )
    # nuc_label_image.pretty_color_image.view(dbiImage).save("nuc_label_img.png")
    # dataitem.cell_mask(params).view(dbiImage).save("cell_mask.png")

    segmentation = segmentation_from_cellmask_and_label_image(
        dataitem.cell_mask(params),
        skimage.measure.label(dataitem.scaled_markers)
        # nuc_label_image
    )

    scaled_good_mask = scale_segmentation(dataitem.good_mask, dataitem.maxproj)
    labelled_points = skimage.measure.label(scaled_good_mask)
    rprops = skimage.measure.regionprops(labelled_points)
    region_centroids = [r.centroid for r in rprops]
    icentroids = [(int(r), int(c)) for r, c in region_centroids]
    good_regions = [segmentation[r, c] for r, c in icentroids]

    filtered_segmentation = filter_segmentation_by_region_list(
        segmentation,
        good_regions
    )

    return filtered_segmentation
Example #3
0
def visualise_marker_positions(dataitem):

    r = dataitem.bad_mask
    g = dataitem.good_mask
    b = dataitem.nuc_mask

    import numpy as np
    from dtoolbioimage import scale_to_uint8
    merged = np.dstack([r, g, b])
    scaled = scale_to_uint8(scale_segmentation(merged, dataitem.maxproj))
    maxproj_rgb = scale_to_uint8(np.dstack(3 * [dataitem.maxproj]))
    scaled.view(dbiImage).save("scaled.png")
    v = 0.5 * scaled + 0.5 * maxproj_rgb
    v.view(dbiImage).save("v.png")

    visd = np.array(vis).view(dbiImage)
    (0.5 * visd + 0.5 * scaled).view(dbiImage).save("svis.png")
Example #4
0
 def scaled_markers(self):
     scaled_markers = scale_segmentation(self.all_mask, self.maxproj)
     return scaled_markers
Example #5
0
 def scaled_markers(self):
     # print(f"Scaling to {self.maxproj.shape}")
     # print(f"Diag {self.deconv_stack.shape}, {self.fishimage.nuclei.shape}")
     scaled_markers = scale_segmentation(self.all_mask, self.maxproj)
     return scaled_markers