Example #1
0
    def sample(self):
        if hasattr(self, '_sample'):
            return self._sample, self._sample_size

        self._sample = {}
        self._sample_size = 0
        _, n = self.positive
        positives = self._positive_expanded
        n = int(n * self.ratio)
        TT.debug("Collecting", n, "random samples.")
        pixels_per_image = int(np.prod(self.image_size))
        indices = xrange(len(self.files) * pixels_per_image)
        ignored = 0
        for index in random.sample(indices, n):
            data_file, label_file = self.files[index / pixels_per_image]
            if data_file not in self._sample:
                self._sample[data_file] = []
            pixel = index % pixels_per_image
            p = 0.0
            if data_file in positives and pixel in positives[data_file]:
                p = 1.0
                ignored += 1
            col, row = pixel_at_index(pixel, self.image_size)
            self._sample[data_file].append([col, row, p])
            self._sample_size += 1
        TT.debug(ignored, "samples out of", self._sample_size,
                 "random samples are positive.")
        self.positive_in_sample = ignored
        return self.sample
Example #2
0
 def __iter__(self):
     for i in xrange(len(self)):
         col, row = pixel_at_index(i, self.image_size)
         yield patch_centered_at(self.input,
                                 row=row,
                                 col=col,
                                 size=self.patch_size), self.output[row,
                                                                    col]
Example #3
0
def test_pixel_at():
    global image
    size = image_size(image)
    # 2. pixel index to row, col
    assert (500, 2) == pixel_at_index(1700, size)
    # 3. row, col to pixel index
    assert 1700 == index_at_pixel(500, 2, size)
    assert 120400 == index_at_pixel(400, 200, size)