lowbrightnessgenerator.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:crayimage 作者: yandexdataschool 项目源码 文件源码
def generate(self, N = 1.0e+3):
    import scipy.stats as stats

    N = int(N)

    data = np.ndarray(
      shape=(N, ) + self._background_samples.shape[1:],
      dtype=self._background_samples.dtype
    )

    mask = np.zeros(
      shape=data.shape,
      dtype='int8'
    )

    data = self._get_background(data)
    data = self._impose_white_noise(data)

    n_tracks_distr = stats.expon(scale=self._track_rate)

    n_ptracks_distr = stats.expon(scale=self._pseudo_tracks_rate)
    track_area_distr = self._area_distribution

    track_stream = random_samples_stream(self._track_samples)

    track_max_x = self._background_samples.shape[1] - self._track_samples.shape[1]
    track_max_y = self._background_samples.shape[2] - self._track_samples.shape[2]

    for i in xrange(N):
      n_tracks = int(n_tracks_distr.rvs(size=1))

      for _ in xrange(n_tracks):
        track = track_stream.next()
        x, y = np.random.randint(track_max_x), np.random.randint(track_max_y)

        impose(track, data[i], x, y)

        impose(track, mask[i], x, y, level=1)

      n_ptracks = int(n_ptracks_distr.rvs(size=1))

      for _ in xrange(n_ptracks):
        ptrack = pseudo_track(
          area_distribution=track_area_distr,
          signal_distribution=self._signal_level,
          width = self._pseudo_track_width,
          sparseness=self._pseudo_track_sparseness,
          patch_size=self._track_samples.shape[1],
          dtype=self._track_samples.dtype
        )

        x, y = np.random.randint(track_max_x), np.random.randint(track_max_y)
        impose(ptrack, data[i], x, y, level=self._signal_level)
        impose(ptrack, mask[i], x, y, level=-1)

    return data, mask
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号