示例#1
0
    def test_parcel_write(self):
        parcelmap = np.zeros(self.img3.shape)
        parcelmap[0,0,0] = 1
        parcelmap[1,1,1] = 1
        parcelmap[2,2,2] = 1
        parcelmap[1,2,1] = 2
        parcelmap[2,3,2] = 2
        parcelmap[0,1,0] = 2
        parcelseq = (0, 1, 2, 3)
        expected = [np.product(self.img3.shape) - 6, 3, 3, 0]
        iterator = gen.parcels(parcelmap, labels=parcelseq)

        for i, s in enumerate(iterator):
            value = np.arange(expected[i])
            self.img3[s] = value

        iterator = gen.parcels(parcelmap, labels=parcelseq)
        for i, pair in enumerate(gen.data_generator(self.img3, iterator)):
            s, d = pair
            self.assertEqual((expected[i],), d.shape)
            assert_equal(d, np.arange(expected[i]))

        iterator = gen.parcels(parcelmap)
        for i, s in enumerate(iterator):
            value = np.arange(expected[i])
            self.img3[s] = value

        iterator = gen.parcels(parcelmap)
        for i, pair in enumerate(gen.data_generator(self.img3, iterator)):
            s, d = pair
            self.assertEqual((expected[i],), d.shape)
            assert_equal(d, np.arange(expected[i]))
示例#2
0
    def test_iterate_over_image(self):
        # Fit a model, iterating over the slices of an array
        # associated to an FmriImage.
        c = np.zeros(self.fd.shape[1:]) + 0.5
        fd = self.fd
        res_gen = result_generator(flatten_generator(fmri_generator(fd)))
        write_data(c, unflatten_generator(contrast_generator(res_gen)))

        # Fit a model, iterating over the array associated to an
        # FmriImage, iterating over a list of ROIs defined by binary
        # regions of the same shape as a frame of FmriImage
        
        # this might really be an anatomical image or AR(1) coefficients 
        a = np.asarray(fd[0]) 
        p = np.greater(a, a.mean())
        d = np.ones(fd.shape[1:]) * 2.0
        flat_gen = flatten_generator(fmri_generator(fd, parcels(p)))
        write_data(d, contrast_generator(result_generator(flat_gen)))

        yield assert_array_almost_equal, d, c

        e = np.zeros(fd.shape[1:]) + 3.0
        flat_gen2 = flatten_generator(fmri_generator(fd, parcels(p)))
        write_data(e, f_generator(contrast, result_generator(flat_gen2)))

        yield assert_array_almost_equal, d, e
示例#3
0
    def test_parcel_copy(self):
        parcelmap = np.zeros(self.img3.shape)
        parcelmap[0,0,0] = 1
        parcelmap[1,1,1] = 1
        parcelmap[2,2,2] = 1
        parcelmap[1,2,1] = 2
        parcelmap[2,3,2] = 2
        parcelmap[0,1,0] = 2
        parcelseq = (0, 1, 2, 3)
        expected = [np.product(self.img3.shape) - 6, 3, 3, 0]
        iterator = gen.parcels(parcelmap, labels=parcelseq)
        tmp = Image(np.asarray(self.img3), self.img3.coordmap)

        gen_parcels = gen.parcels(parcelmap, labels=parcelseq)
        new_iterator = gen.data_generator(tmp, gen_parcels)

        for i, slice_ in enumerate(new_iterator):
            self.assertEqual((expected[i],), slice_[1].shape)
示例#4
0
    def test_parcel(self):
        parcelmap = np.zeros(self.img3.shape)
        parcelmap[0,0,0] = 1
        parcelmap[1,1,1] = 1
        parcelmap[2,2,2] = 1
        parcelmap[1,2,1] = 2
        parcelmap[2,3,2] = 2
        parcelmap[0,1,0] = 2
        parcelseq = (0, 1, 2, 3)
        expected = [np.product(self.img3.shape) - 6, 3, 3, 0]
        iterator = gen.data_generator(self.img3, 
                                      gen.parcels(parcelmap, labels=parcelseq))

        for i, pair in enumerate(iterator):
            s, d = pair
            self.assertEqual((expected[i],), d.shape)

        iterator = gen.data_generator(self.img3, gen.parcels(parcelmap))
        for i, pair in enumerate(iterator):
            s, d = pair
            self.assertEqual((expected[i],), d.shape)