示例#1
0
                self.cells = np.asarray(fid['cells']) if 'cells' in fid else None
                self.P = np.asarray(fid['P']) if 'P' in fid else np.nan * np.empty(X.shape[:3])

    def save(self, stackfile):
        mode = 'r+' if os.path.exists(stackfile) else 'w'
        with h5py.File(stackfile, mode) as fid:
            fid.create_dataset('stack', self.stack.shape, dtype=float, data=self.stack)
            fid.create_dataset('P', self.P.shape, dtype=float, data=self.P)
            if self.cells is not None:
                fid.create_dataset('cells', self.cells.shape, dtype=int, data=self.cells)


if __name__ == "__main__":
    # s = Stack('data/smaller.hdf5', preprocessor=lambda x: preprocess(x).mean(axis=-1).squeeze())
    # b = FullBernoulliProcess((9, 9, 7), quadratic_channels=3, linear_channels=3)

    # s = Stack('data/sanity.hdf5', preprocessor=lambda x: x.mean(axis=-1).squeeze())
    # s_test = Stack('data/sanity_test.hdf5', preprocessor=lambda x: x.mean(axis=-1).squeeze())
    # b = RankDegenerateBernoulliProcess( (3,3,3), quadratic_channels=3, linear_channels=3, common_channels=3)


    s = Stack('data/smaller.hdf5',
              preprocessor=lambda x: histeq(unsharp_masking(medianfilter(center(x.squeeze()))), 500).mean(
                  axis=-1))
    b = RankDegenerateBernoulliProcess((11, 11, 9), quadratic_channels=40, linear_channels=40, common_channels=20)
    # s = Stack('data/2015-08-25_12-49-41_2015-08-25_13-02-18.h5',
    #           preprocessor=lambda x: histeq(unsharp_masking(medianfilter(center(x.squeeze()))),500).mean(axis=-1))
    # b = RankDegenerateBernoulliProcess((19, 19, 17), quadratic_channels=40, linear_channels=40, common_channels=20)
    b.fit(s.X, s.cells, maxiter=50)
    b.visualize(s.X, s.cells)