Пример #1
0
    def test_crosscorr_volume(self):

        random.seed(42)
        ref = random.randn(25, 25, 3)

        im = shift(ref, [2, -2, 0], mode='constant', order=0)
        imin = ImagesLoader(self.sc).fromArrays(im)
        paramout = Register('crosscorr').estimate(imin, ref)[0][1]
        imout = Register('crosscorr').transform(imin, ref).first()[1]
        assert (allclose(paramout, [[2, -2], [2, -2], [2, -2]]))
        assert (allclose(ref[:-2, 2:, :], imout[:-2, 2:, :]))
Пример #2
0
    def test_reference_3d(self):

        random.seed(42)
        im0 = random.randn(25, 25, 3).astype('uint16')
        im1 = random.randn(25, 25, 3).astype('uint16')
        imin = ImagesLoader(self.sc).fromArrays([im0, im1])
        ref = Register.reference(imin)
        assert(allclose(ref, (im0 + im1) / 2))
Пример #3
0
    def test_reference_2d(self):

        random.seed(42)
        im0 = random.randn(25, 25).astype('uint16')
        im1 = random.randn(25, 25).astype('uint16')
        im2 = random.randn(25, 25).astype('uint16')
        imin = ImagesLoader(self.sc).fromArrays([im0, im1, im2])
        ref = Register.reference(imin)
        assert(allclose(ref, (im0 + im1 + im2) / 3))

        print(imin.keys().collect())

        ref = Register.reference(imin, startidx=0, stopidx=2)
        assert(allclose(ref, (im0 + im1) / 2))

        ref = Register.reference(imin, startidx=1, stopidx=2)
        assert(allclose(ref, im1))
Пример #4
0
    def test_reference_3d(self):

        random.seed(42)
        im0 = random.randn(25, 25, 3).astype('uint16')
        im1 = random.randn(25, 25, 3).astype('uint16')
        imin = ImagesLoader(self.sc).fromArrays([im0, im1])
        ref = Register.reference(imin)
        assert (allclose(ref, (im0 + im1) / 2))
Пример #5
0
    def test_reference_2d(self):

        random.seed(42)
        im0 = random.randn(25, 25).astype('uint16')
        im1 = random.randn(25, 25).astype('uint16')
        im2 = random.randn(25, 25).astype('uint16')
        imin = ImagesLoader(self.sc).fromArrays([im0, im1, im2])
        ref = Register.reference(imin)
        assert (allclose(ref, (im0 + im1 + im2) / 3))

        print(imin.keys().collect())

        ref = Register.reference(imin, startidx=0, stopidx=2)
        assert (allclose(ref, (im0 + im1) / 2))

        ref = Register.reference(imin, startidx=1, stopidx=2)
        assert (allclose(ref, im1))
Пример #6
0
    def test_reference_2d(self):

        random.seed(42)
        im0 = random.random_integers(0, high=127,
                                     size=(25, 25)).astype('uint16')
        im1 = random.random_integers(0, high=127,
                                     size=(25, 25)).astype('uint16')
        im2 = random.random_integers(0, high=127,
                                     size=(25, 25)).astype('uint16')
        imgIn = ImagesLoader(self.sc).fromArrays([im0, im1, im2])
        ref = Register.reference(imgIn)
        assert (allclose(ref, (im0 + im1 + im2) / 3))

        ref = Register.reference(imgIn, startIdx=0, stopIdx=2)
        assert (allclose(ref, (im0 + im1) / 2))

        ref = Register.reference(imgIn, startIdx=1, stopIdx=2)
        assert (allclose(ref, im1))
Пример #7
0
    def test_reference_3d(self):

        random.seed(42)
        im0 = random.random_integers(0, high=127,
                                     size=(25, 25, 3)).astype('uint16')
        im1 = random.random_integers(0, high=127,
                                     size=(25, 25, 3)).astype('uint16')
        imgIn = ImagesLoader(self.sc).fromArrays([im0, im1])
        ref = Register.reference(imgIn)
        assert (allclose(ref, (im0 + im1) / 2))
Пример #8
0
    def test_crosscorr_image(self):

        random.seed(42)
        ref = random.randn(25, 25)

        reg = Register('crosscorr')

        im = shift(ref, [2, 0], mode='constant', order=0)
        imin = ImagesLoader(self.sc).fromArrays(im)
        paramout = reg.estimate(imin, ref).collect()[0][1]
        imout = reg.transform(imin, ref).first()[1]
        assert(allclose(ref[:-2, :], imout[:-2, :]))
        assert(allclose(paramout, [2, 0]))

        im = shift(ref, [0, 2], mode='constant', order=0)
        imin = ImagesLoader(self.sc).fromArrays(im)
        paramout = reg.estimate(imin, ref).collect()[0][1]
        imout = reg.transform(imin, ref).first()[1]
        assert(allclose(ref[:, :-2], imout[:, :-2]))
        assert(allclose(paramout, [0, 2]))

        im = shift(ref, [2, -2], mode='constant', order=0)
        imin = ImagesLoader(self.sc).fromArrays(im)
        paramout = reg.estimate(imin, ref).collect()[0][1]
        imout = reg.transform(imin, ref).first()[1]
        assert(allclose(ref[:-2, 2:], imout[:-2, 2:]))
        assert(allclose(paramout, [2, -2]))

        im = shift(ref, [-2, 2], mode='constant', order=0)
        imin = ImagesLoader(self.sc).fromArrays(im)
        paramout = reg.estimate(imin, ref).collect()[0][1]
        imout = reg.transform(imin, ref).first()[1]
        assert(allclose(ref[2:, :-2], imout[2:, :-2]))
        assert(allclose(paramout, [-2, 2]))

        # just that that applying a filter during registration runs
        # TODO add a check that shows this helps compensate for noisy pixels
        reg = Register('crosscorr').setFilter('median', 2)
        im = shift(ref, [-2, 2], mode='constant', order=0)
        imin = ImagesLoader(self.sc).fromArrays(im)
        paramout = reg.estimate(imin, ref).collect()[0][1]
        imout = reg.transform(imin, ref).first()[1]
Пример #9
0
    def test_crosscorr_image(self):

        random.seed(42)
        ref = random.randn(25, 25)

        reg = Register('crosscorr')

        im = shift(ref, [2, 0], mode='constant', order=0)
        imgIn = ImagesLoader(self.sc).fromArrays(im)
        paramOut = reg.estimate(imgIn, ref).collect()[0][1]
        imgOut = reg.transform(imgIn, ref).first()[1]
        assert (allclose(ref[:-2, :], imgOut[:-2, :]))
        assert (allclose(paramOut, [2, 0]))

        im = shift(ref, [0, 2], mode='constant', order=0)
        imgIn = ImagesLoader(self.sc).fromArrays(im)
        paramOut = reg.estimate(imgIn, ref).collect()[0][1]
        imgOut = reg.transform(imgIn, ref).first()[1]
        assert (allclose(ref[:, :-2], imgOut[:, :-2]))
        assert (allclose(paramOut, [0, 2]))

        im = shift(ref, [2, -2], mode='constant', order=0)
        imgIn = ImagesLoader(self.sc).fromArrays(im)
        paramOut = reg.estimate(imgIn, ref).collect()[0][1]
        imgOut = reg.transform(imgIn, ref).first()[1]
        assert (allclose(ref[:-2, 2:], imgOut[:-2, 2:]))
        assert (allclose(paramOut, [2, -2]))

        im = shift(ref, [-2, 2], mode='constant', order=0)
        imgIn = ImagesLoader(self.sc).fromArrays(im)
        paramOut = reg.estimate(imgIn, ref).collect()[0][1]
        imgOut = reg.transform(imgIn, ref).first()[1]
        assert (allclose(ref[2:, :-2], imgOut[2:, :-2]))
        assert (allclose(paramOut, [-2, 2]))

        # just that that applying a filter during registration runs
        # TODO add a check that shows this helps compensate for noisy pixels
        reg = Register('crosscorr').setFilter('median', 2)
        im = shift(ref, [-2, 2], mode='constant', order=0)
        imgIn = ImagesLoader(self.sc).fromArrays(im)
        paramOut = reg.estimate(imgIn, ref).collect()[0][1]
        imgOut = reg.transform(imgIn, ref).first()[1]