public Projector(Image data, int oversampling, int projdim = 2) { Dims = data.Dims; Oversampling = oversampling; int Oversampled = 2 * (oversampling * (Dims.X / 2) + 1) + 1; DimsOversampled = new int3(Oversampled, Oversampled, Oversampled); float[] Continuous = data.GetHostContinuousCopy(); float[] Initialized = new float[(DimsOversampled.X / 2 + 1) * DimsOversampled.Y * DimsOversampled.Z * 2]; lock (Image.FFT_CPU_Sync) CPU.InitProjector(Dims, Oversampling, Continuous, Initialized, projdim); float2[] Initialized2 = Helper.FromInterleaved2(Initialized); Data = new Image(Initialized2, DimsOversampled, true); }
public Projector(Image data, int oversampling) { Dims = data.Dims; Oversampling = oversampling; int Oversampled = 2 * (oversampling * (Dims.X / 2) + 1) + 1; DimsOversampled = new int3(Oversampled, Oversampled, Oversampled); float[] Continuous = data.GetHostContinuousCopy(); float[] Initialized = new float[(DimsOversampled.X / 2 + 1) * DimsOversampled.Y * DimsOversampled.Z * 2]; CPU.InitProjector(Dims, Oversampling, Continuous, Initialized); float2[] Initialized2 = Helper.FromInterleaved2(Initialized); Data = new Image(Initialized2, DimsOversampled, true); //Data = Data.AsAmplitudes(); //Data.WriteMRC("d_proj.mrc"); Weights = new Image(DimsOversampled, true, false); }