Exemple #1
0
    def run(self, options):
        """ Run the process """
        from oxasl import Workspace, calib
        from fsl.data.image import Image

        data = self.get_data(options)
        img = Image(data.raw(), name=data.name)

        roi = self.get_roi(options, data.grid)
        options["mask"] = Image(roi.raw(), name=roi.name)

        calib_name = options.pop("calib-data")
        if calib_name not in self.ivm.data:
            raise QpException("Calibration data not found: %s" % calib_name)
        else:
            calib_img = Image(self.ivm.data[calib_name].resample(
                data.grid).raw(),
                              name=calib_name)

        ref_roi_name = options.pop("ref-roi", None)
        if ref_roi_name is not None:
            if ref_roi_name not in self.ivm.rois:
                raise QpException("Reference ROI not found: %s" % calib_name)
            else:
                options["ref_mask"] = Image(
                    self.ivm.rois[ref_roi_name].resample(data.grid).raw(),
                    name=ref_roi_name)

        options["calib_method"] = options.pop("method", None)
        output_name = options.pop("output-name", data.name + "_calib")

        logbuf = six.StringIO()
        wsp = Workspace(log=logbuf, **options)
        wsp.calib = calib_img
        ## FIXME variance mode
        calibrated = calib.calibrate(wsp, img)
        self.log(logbuf.getvalue())
        self.ivm.add(name=output_name,
                     data=calibrated.data,
                     grid=data.grid,
                     make_current=True)
Exemple #2
0
def get_wsp():
    wsp = Workspace(debug=True)
    wsp.struc = Image(np.random.rand(10, 10, 10))
    wsp.calib = Image(np.random.rand(5, 5, 5))
    return wsp