Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def _run_interface(self, runtime):
img = nb.load(self.inputs.in_file)
msknii = nb.load(self.inputs.in_mask)
msk = msknii.get_fdata() > self.inputs.threshold
self._results["out_file"] = fname_presuffix(
self.inputs.in_file, suffix="_masked", newpath=runtime.cwd
)
if img.dataobj.shape[:3] != msk.shape:
raise ValueError("Image and mask sizes do not match.")
if not np.allclose(img.affine, msknii.affine):
raise ValueError("Image and mask affines are not similar enough.")
if img.dataobj.ndim == msk.ndim + 1:
msk = msk[..., np.newaxis]
masked = img.__class__(img.dataobj * msk, None, img.header)
def _run_interface(self, runtime):
img = nb.load(self.inputs.in_file)
self._results["out_file"] = fname_presuffix(
self.inputs.in_file, suffix="_masked", newpath=runtime.cwd
)
self._results["out_mask"] = fname_presuffix(
self.inputs.in_file, suffix="_mask", newpath=runtime.cwd
)
data = img.get_fdata()
mask = data > self.inputs.thresh_low
data[~mask] = 0.0
masked = img.__class__(data, img.affine, img.header)
masked.to_filename(self._results["out_file"])
img.header.set_data_dtype("uint8")
maskimg = img.__class__(mask.astype("uint8"), img.affine, img.header)
def _run_interface(self, runtime):
nii_list = []
for f in self.inputs.in_files:
filenii = nb.squeeze_image(nb.load(f))
ndim = filenii.dataobj.ndim
if ndim == 3:
nii_list.append(filenii)
continue
elif self.inputs.allow_4D and ndim == 4:
nii_list += nb.four_to_three(filenii)
continue
else:
raise ValueError(
"Input image has an incorrect number of dimensions" f" ({ndim})."
)
img_4d = nb.concat_images(nii_list)
out_file = fname_presuffix(
self.inputs.in_files[0], suffix="_merged", newpath=runtime.cwd
)
def _run_interface(self, runtime):
in_file = self.inputs.in_file
img = nb.load(in_file)
extra_dims = tuple(dim for dim in img.shape[3:] if dim > 1) or (1,)
if len(extra_dims) != 1:
raise ValueError(f"Invalid shape {'x'.join(str(s) for s in img.shape)}")
img = img.__class__(
img.dataobj.reshape(img.shape[:3] + extra_dims), img.affine, img.header
)
self._results["out_files"] = []
for i, img_3d in enumerate(nb.four_to_three(img)):
out_file = fname_presuffix(
in_file, suffix=f"_idx-{i:03}", newpath=runtime.cwd
)
img_3d.to_filename(out_file)
self._results["out_files"].append(out_file)
return runtime
def _run_interface(self, runtime):
img = nb.load(self.inputs.in_file)
msknii = nb.load(self.inputs.in_mask)
msk = msknii.get_fdata() > self.inputs.threshold
self._results["out_file"] = fname_presuffix(
self.inputs.in_file, suffix="_masked", newpath=runtime.cwd
)
if img.dataobj.shape[:3] != msk.shape:
raise ValueError("Image and mask sizes do not match.")
if not np.allclose(img.affine, msknii.affine):
raise ValueError("Image and mask affines are not similar enough.")
if img.dataobj.ndim == msk.ndim + 1:
msk = msk[..., np.newaxis]