当前位置: 首页>>代码示例>>Python>>正文


Python morphology.distance_transform_edt方法代码示例

本文整理汇总了Python中scipy.ndimage.morphology.distance_transform_edt方法的典型用法代码示例。如果您正苦于以下问题:Python morphology.distance_transform_edt方法的具体用法?Python morphology.distance_transform_edt怎么用?Python morphology.distance_transform_edt使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在scipy.ndimage.morphology的用法示例。


在下文中一共展示了morphology.distance_transform_edt方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: spectrum_mask

# 需要导入模块: from scipy.ndimage import morphology [as 别名]
# 或者: from scipy.ndimage.morphology import distance_transform_edt [as 别名]
def spectrum_mask(size):
    """Creates a mask to filter the image of size size"""
    import numpy as np
    from scipy.ndimage.morphology import distance_transform_edt as distance

    ftmask = np.ones(size)

    # Set zeros on corners
    # ftmask[0, 0] = 0
    # ftmask[size[0] - 1, size[1] - 1] = 0
    # ftmask[0, size[1] - 1] = 0
    # ftmask[size[0] - 1, 0] = 0
    ftmask[size[0] // 2, size[1] // 2] = 0

    # Distance transform
    ftmask = distance(ftmask)
    ftmask /= ftmask.max()

    # Keep this just in case we want to switch to the opposite filter
    ftmask *= -1.0
    ftmask += 1.0

    ftmask[ftmask >= 0.4] = 1
    ftmask[ftmask < 1] = 0
    return ftmask 
开发者ID:poldracklab,项目名称:mriqc,代码行数:27,代码来源:utils.py

示例2: edt

# 需要导入模块: from scipy.ndimage import morphology [as 别名]
# 或者: from scipy.ndimage.morphology import distance_transform_edt [as 别名]
def edt(self, target: np.ndarray) -> np.ndarray:
        sh = target.shape
        if target.min() == 1:  # If everything is 1, the EDT should be inf for every pixel
            nc = target.ndim if self.vector else 1
            return np.full((nc, *sh), np.inf, dtype=np.float32)

        if self.vector:
            if target.ndim == 2:
                coords = np.mgrid[:sh[0], :sh[1]]
            elif target.ndim == 3:
                coords = np.mgrid[:sh[0], :sh[1], :sh[2]]
            else:
                raise RuntimeError(f'Target shape {sh} not understood.')
            inds = distance_transform_edt(
                target, return_distances=False, return_indices=True
            ).astype(np.float32)
            dist = inds - coords
            # assert np.isclose(np.sqrt(dist[0] ** 2 + dist[1] ** 2), distance_transform_edt(target))
            return dist

        # Else: Regular scalar edt
        dist = distance_transform_edt(target).astype(np.float32)[None]
        return dist 
开发者ID:ELEKTRONN,项目名称:elektronn3,代码行数:25,代码来源:transforms.py

示例3: generate_click

# 需要导入模块: from scipy.ndimage import morphology [as 别名]
# 或者: from scipy.ndimage.morphology import distance_transform_edt [as 别名]
def generate_click(fn_map, fp_map, click_map, net_size, y_meshgrid, x_meshgrid):
    fn_map = np.pad(fn_map, ((1,1),(1,1)), 'constant')
    fndist_map = distance_transform_edt(fn_map)
    fndist_map = fndist_map[1:-1, 1:-1]
    fndist_map = np.multiply(fndist_map, 1-click_map)

    fp_map = np.pad(fp_map, ((1,1),(1,1)), 'constant')
    fpdist_map = distance_transform_edt(fp_map)
    fpdist_map = fpdist_map[1:-1, 1:-1]
    fpdist_map = np.multiply(fpdist_map, 1-click_map)

    if np.max(fndist_map) > np.max(fpdist_map):
        is_pos = 1
        return fndist_map, is_pos
    else:
        is_pos = 0
        return fpdist_map, is_pos 
开发者ID:wdjang,项目名称:BRS-Interactive_segmentation,代码行数:19,代码来源:generate_click.py

示例4: surface_distances

# 需要导入模块: from scipy.ndimage import morphology [as 别名]
# 或者: from scipy.ndimage.morphology import distance_transform_edt [as 别名]
def surface_distances(y_true, y_pred, voxel_shape=None):
    check_bool(y_pred, y_true)
    check_shapes(y_pred, y_true)

    pred_border = np.logical_xor(y_pred, binary_erosion(y_pred))
    true_border = np.logical_xor(y_true, binary_erosion(y_true))

    dt = distance_transform_edt(~true_border, sampling=voxel_shape)
    return dt[pred_border] 
开发者ID:neuro-ml,项目名称:deep_pipe,代码行数:11,代码来源:metrics.py

示例5: _make_costgrid

# 需要导入模块: from scipy.ndimage import morphology [as 别名]
# 或者: from scipy.ndimage.morphology import distance_transform_edt [as 别名]
def _make_costgrid(mask, ext, z):
    """Computes a costgrid following Kienholz et al. (2014) Eq. (2)

    Parameters
    ----------
    mask : numpy.array
        The glacier mask.
    ext : numpy.array
        The glacier boundaries' mask.
    z : numpy.array
        The terrain height.

    Returns
    -------
    numpy.array of the costgrid
    """

    dis = np.where(mask, distance_transform_edt(mask), np.NaN)
    z = np.where(mask, z, np.NaN)

    dmax = np.nanmax(dis)
    zmax = np.nanmax(z)
    zmin = np.nanmin(z)
    cost = ((dmax - dis) / dmax * cfg.PARAMS['f1']) ** cfg.PARAMS['a'] + \
           ((z - zmin) / (zmax - zmin) * cfg.PARAMS['f2']) ** cfg.PARAMS['b']

    # This is new: we make the cost to go over boundaries
    # arbitrary high to avoid the lines to jump over adjacent boundaries
    cost[np.where(ext)] = np.nanmax(cost[np.where(ext)]) * 50

    return np.where(mask, cost, np.Inf) 
开发者ID:OGGM,项目名称:oggm,代码行数:33,代码来源:centerlines.py

示例6: distance

# 需要导入模块: from scipy.ndimage import morphology [as 别名]
# 或者: from scipy.ndimage.morphology import distance_transform_edt [as 别名]
def distance(img):
    return distance_transform_edt(img) 
开发者ID:alexjc,项目名称:imgscaper,代码行数:4,代码来源:ops.py

示例7: PreProcess

# 需要导入模块: from scipy.ndimage import morphology [as 别名]
# 或者: from scipy.ndimage.morphology import distance_transform_edt [as 别名]
def PreProcess(img_path):
    img = cv2.imread(img_path)
    I = img[:,:,2]
    I2 = bwdist(I <= 100);
    I3 = bwdist(I > 100);

    img[:,:,0] = np.clip(I2,0,255);
    img[:,:,1] = np.clip(I3,0,255);

    return img 
开发者ID:liweileev,项目名称:FET-GAN,代码行数:12,代码来源:fontdata_preprocess.py

示例8: spread_labels

# 需要导入模块: from scipy.ndimage import morphology [as 别名]
# 或者: from scipy.ndimage.morphology import distance_transform_edt [as 别名]
def spread_labels(labels, maxdist=9999999):
    """Spread the given labels to the background"""
    distances, features = morphology.distance_transform_edt(labels == 0,
                                                            return_distances=1,
                                                            return_indices=1)
    indexes = features[0] * labels.shape[1] + features[1]
    spread = labels.ravel()[indexes.ravel()].reshape(*labels.shape)
    spread *= (distances < maxdist)
    return spread 
开发者ID:mittagessen,项目名称:kraken,代码行数:11,代码来源:morph.py

示例9: mask_to_sdf

# 需要导入模块: from scipy.ndimage import morphology [as 别名]
# 或者: from scipy.ndimage.morphology import distance_transform_edt [as 别名]
def mask_to_sdf(im_mask):
    # convert binary mask to signed distance function

    Phi0 = dtx(1 - im_mask) - dtx(im_mask) + im_mask - 1 / 2
    return Phi0 
开发者ID:DigitalSlideArchive,项目名称:HistomicsTK,代码行数:7,代码来源:chan_vese.py

示例10: update_distances

# 需要导入模块: from scipy.ndimage import morphology [as 别名]
# 或者: from scipy.ndimage.morphology import distance_transform_edt [as 别名]
def update_distances(dist, mask):
    if dist.sum() == 0:
        distances = distance_transform_edt(1 - mask)
    else:
        distances = np.dstack([dist, distance_transform_edt(1 - mask)])
    return distances 
开发者ID:neptune-ai,项目名称:open-solution-mapping-challenge,代码行数:8,代码来源:preparation.py

示例11: create_bad_labels

# 需要导入模块: from scipy.ndimage import morphology [as 别名]
# 或者: from scipy.ndimage.morphology import distance_transform_edt [as 别名]
def create_bad_labels():
  from scipy.ndimage.morphology import distance_transform_edt
  thresholds = [100, 150, 175, 180, 190, 200, 220, 250]
  l = []
  for threshold in thresholds:
    x = numpy.ones((480, 854))
    dt = distance_transform_edt(x)
    z = numpy.zeros((480, 854))
    z[:] = 255
    negatives = dt > threshold
    z[negatives] = 0
    l.append(numpy.expand_dims(z, axis=2))
  return l 
开发者ID:JonathonLuiten,项目名称:PReMVOS,代码行数:15,代码来源:OfflineAdaptingForwarder.py

示例12: generate_click

# 需要导入模块: from scipy.ndimage import morphology [as 别名]
# 或者: from scipy.ndimage.morphology import distance_transform_edt [as 别名]
def generate_click(self, mask, inst):
    dt = np.where(mask == inst, 1, 0)
    # Set the current click points to 0, so that a reasonable new sample is obtained.
    dt[self.pos_row, self.col_pos] = 0
    dt[self.neg_row, self.neg_col] = 0
    
    #Set the border pixels of the image to 0, so that the click is centred on the required mask.
    dt[[0,dt.shape[0] - 1], : ] = 0
    dt[:, [0, dt.shape[1] - 1]] = 0

    dt = distance_transform_edt(dt)
    row = None
    col = None

    if np.max(dt) > 0:
      # get points that are farthest from the object boundary.
      #farthest_pts = np.where(dt > np.max(dt) / 2.0) 
      farthest_pts = np.where(dt == np.max(dt))
      # sample from the list since there could be more that one such points.
      row, col = random.sample(list(zip(farthest_pts[0], farthest_pts[1])), 1)[0]

      #Calculate distance from the existing clicks, and ignore if it is within d_step distance.
      dt_pts = np.ones_like(dt)
      dt_pts[self.pos_row, self.col_pos] = 0
      dt_pts[self.neg_row, self.neg_col] = 0
      dt_pts = distance_transform_edt(dt_pts)

      if dt_pts[row, col] < self.d_step:
        row = None
        col = None

    return row, col 
开发者ID:JonathonLuiten,项目名称:PReMVOS,代码行数:34,代码来源:InteractiveEval.py

示例13: to_distance_im

# 需要导入模块: from scipy.ndimage import morphology [as 别名]
# 或者: from scipy.ndimage.morphology import distance_transform_edt [as 别名]
def to_distance_im(self):
        """ Returns the distance-transformed image as a raw float array.

        Returns
        -------
        :obj:`numpy.ndarray`
            HxW float array containing the distance transform of the binary image
        """
        return snm.distance_transform_edt(BINARY_IM_MAX_VAL - self.data) 
开发者ID:BerkeleyAutomation,项目名称:perception,代码行数:11,代码来源:image.py

示例14: dilate_xor

# 需要导入模块: from scipy.ndimage import morphology [as 别名]
# 或者: from scipy.ndimage.morphology import distance_transform_edt [as 别名]
def dilate_xor(im_label, neigh_width=8):
    """Computes a label mask highlighting a ring-like neighborhood of each
    object or region in a given label mask

    Parameters
    ----------
    im_label : array_like
        A labeled mask image wherein intensity of a pixel is the ID of the
        object it belongs to. Non-zero values are considered to be foreground
        objects.

    neigh_width : float, optional
        The width of the ring-like neighborhood around each object.

    Returns
    -------
    im_neigh_label : array_like
        A labeled mask image highlighting pixels in a ring-like neighborhood of
        width upto `neigh_width` around each object in the given label mask.
        The intensity of each pixel in the ring-like neighborhood is set
        equal to the label of the closest object in the given label mask.
        other pixels (including the ones inside objects) are set to zero.

    """

    # For each background pixel compute the distance to the nearest object and
    # the indices of the nearest object pixel
    im_dist, closest_obj_ind = distance_transform_edt(im_label == 0,
                                                      return_indices=True)
    closest_obj_rind, closest_obj_cind = closest_obj_ind

    # Get indices of background pixels within a given distance from an object
    neigh_rind, neigh_cind = np.where(
        np.logical_and(im_dist > 0, im_dist <= neigh_width)
    )

    # generate labeled neighborhood mask
    im_neigh_label = np.zeros_like(im_label)

    im_neigh_label[neigh_rind, neigh_cind] = im_label[
        closest_obj_rind[neigh_rind, neigh_cind],
        closest_obj_cind[neigh_rind, neigh_cind]]

    return im_neigh_label 
开发者ID:DigitalSlideArchive,项目名称:HistomicsTK,代码行数:46,代码来源:dilate_xor.py

示例15: _adapt

# 需要导入模块: from scipy.ndimage import morphology [as 别名]
# 或者: from scipy.ndimage.morphology import distance_transform_edt [as 别名]
def _adapt(self, video_idx, frame_idx, last_mask, get_posteriors_fn):
    eroded_mask = grey_erosion(last_mask, size=(self.erosion_size, self.erosion_size, 1))
    dt = distance_transform_edt(numpy.logical_not(eroded_mask))

    adaptation_target = numpy.zeros_like(last_mask)
    adaptation_target[:] = VOID_LABEL

    current_posteriors = get_posteriors_fn()
    positives = current_posteriors[:, :, 1] > self.posterior_positive_threshold
    if self.use_positives:
      adaptation_target[positives] = 1

    threshold = self.distance_negative_threshold
    negatives = dt > threshold
    if self.use_negatives:
      adaptation_target[negatives] = 0

    do_adaptation = eroded_mask.sum() > 0

    if self.debug:
      adaptation_target_visualization = adaptation_target.copy()
      adaptation_target_visualization[adaptation_target == 1] = 128
      if not do_adaptation:
        adaptation_target_visualization[:] = VOID_LABEL
      from scipy.misc import imsave
      folder = self.val_data.video_tag().replace("__", "/")
      imsave("forwarded/" + self.model + "/valid/" + folder + "/adaptation_%05d.png" % frame_idx,
             numpy.squeeze(adaptation_target_visualization))

    self.train_data.set_video_idx(video_idx)

    for idx in range(self.n_adaptation_steps):
      do_step = True
      if idx % self.adaptation_interval == 0:
        if do_adaptation:
          feed_dict = self.train_data.feed_dict_for_video_frame(frame_idx, with_annotations=True)
          feed_dict[self.train_data.get_label_placeholder()] = adaptation_target
          loss_scale = self.adaptation_loss_scale
          adaption_frame_idx = frame_idx
        else:
          print("skipping current frame adaptation, since the target seems to be lost", file=log.v4)
          do_step = False
      else:
        # mix in first frame to avoid drift
        # (do this even if we think the target is lost, since then this can help to find back the target)
        feed_dict = self.train_data.feed_dict_for_video_frame(frame_idx=0, with_annotations=True)
        loss_scale = 1.0
        adaption_frame_idx = 0

      if do_step:
        loss, _, n_imgs = self.trainer.train_step(epoch=idx, feed_dict=feed_dict, loss_scale=loss_scale,
                                                  learning_rate=self.adaptation_learning_rate)
        assert n_imgs == 1
        print("adapting on frame", adaption_frame_idx, "of sequence", video_idx + 1, \
            self.train_data.video_tag(video_idx), "loss:", loss, file=log.v4)
    if do_adaptation:
      return negatives
    else:
      return None 
开发者ID:JonathonLuiten,项目名称:PReMVOS,代码行数:61,代码来源:OnlineAdaptingForwarder.py


注:本文中的scipy.ndimage.morphology.distance_transform_edt方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。