diff --git a/src/ggrappa/application.py b/src/ggrappa/application.py index 0e901cd..3eda1de 100644 --- a/src/ggrappa/application.py +++ b/src/ggrappa/application.py @@ -77,15 +77,15 @@ def apply_grappa_kernel(sig, shift_y, shift_z = shifts else: shift_y, shift_z = abs(sig).sum(0).sum(-1).nonzero()[0] - #sig = torch.nn.functional.pad(sig, (xpos, (sblx-xpos-tblx), - # (af[1] - zpos)%tblz + zpos, (sblz-zpos-tblz), - # (af[0] - ypos)%tbly + ypos, (sbly-ypos-tbly))) + sig = torch.nn.functional.pad(sig, (xpos, (sblx-xpos-tblx), + (af[1] - zpos)%tblz + zpos, (sblz-zpos-tblz), + (af[0] - ypos)%tbly + ypos, (sbly-ypos-tbly))) rec = torch.zeros_like(sig) size_chunk_y = sbly + tbly*(batch_size - 1) - y_ival = range(shift_y, max(rec.shape[1] - sbly, 1), tbly*batch_size) - z_ival = np.arange(0, max(rec.shape[2] - sblz, 1), tblz) + y_ival = range(shift_y, max(rec.shape[1] - sbly - 1, 1), tbly*batch_size) + z_ival = np.arange(0, max(rec.shape[2] - sblz - 1, 1), tblz) if not quiet: logger.info("GRAPPA Reconstruction...") @@ -95,7 +95,7 @@ def apply_grappa_kernel(sig, for y in tqdm(y_ival, disable=quiet): sig_y = sig[:,y:y+size_chunk_y] sig_y = sig_y.cuda() if cuda and cuda_mode in ["all", "application"] else sig_y - zival = cnt + z_ival + zival = z_ival[z_ival >= cnt.numpy()] for z in zival: blocks = sig_y[:,:, z:z+sblz, :].unfold(dimension=1, size=sbly, step=tbly).unfold(dimension=3, size=sblx, step=tblx) blocks = blocks.permute(1,3,0,4,2,5)