Example #1
0
    def _createLogic(self):
        # input
        self._imageStack = None
        # optional input
        self._inputTransformStack = None
        # output is a transform stack
        self._transformStack = transformStackClass(self)

        self._ipw1 = None
        self._ipw2 = None

        # some control variables
        self._pairNumber = -1
        
        # we need to have two converters from itk::Image to vtkImageData,
        # hmmmm kay?
        self._transform1 = itk.itkEuler2DTransform_New()
        self._transform1.SetIdentity()
        print self._transform1.GetParameters()


        self._rescaler1 = itk.itkRescaleIntensityImageFilterF2F2_New()
        self._rescaler1.SetOutputMinimum(0)
        self._rescaler1.SetOutputMaximum(255)
        self._itkExporter1 = itk.itkVTKImageExportF2_New()
        self._itkExporter1.SetInput(self._rescaler1.GetOutput())
        self._vtkImporter1 = vtk.vtkImageImport()
        CVIPy.ConnectITKF2ToVTK(self._itkExporter1.GetPointer(),
                                self._vtkImporter1)

        self._resampler2 = None

        self._rescaler2 = itk.itkRescaleIntensityImageFilterF2F2_New()
        self._rescaler2.SetOutputMinimum(0)
        self._rescaler2.SetOutputMaximum(255)
        self._itkExporter2 = itk.itkVTKImageExportF2_New()
        self._itkExporter2.SetInput(self._rescaler2.GetOutput())
        self._vtkImporter2 = vtk.vtkImageImport()
        CVIPy.ConnectITKF2ToVTK(self._itkExporter2.GetPointer(),
                                self._vtkImporter2)
Example #2
0
    def _createLogic(self):
        # input
        self._imageStack = None
        # optional input
        self._inputTransformStack = None
        # output is a transform stack
        self._transformStack = transformStackClass(self)

        self._ipw1 = None
        self._ipw2 = None

        # some control variables
        self._pairNumber = -1

        # we need to have two converters from itk::Image to vtkImageData,
        # hmmmm kay?
        self._transform1 = itk.itkEuler2DTransform_New()
        self._transform1.SetIdentity()
        print self._transform1.GetParameters()

        self._rescaler1 = itk.itkRescaleIntensityImageFilterF2F2_New()
        self._rescaler1.SetOutputMinimum(0)
        self._rescaler1.SetOutputMaximum(255)
        self._itkExporter1 = itk.itkVTKImageExportF2_New()
        self._itkExporter1.SetInput(self._rescaler1.GetOutput())
        self._vtkImporter1 = vtk.vtkImageImport()
        CVIPy.ConnectITKF2ToVTK(self._itkExporter1.GetPointer(),
                                self._vtkImporter1)

        self._resampler2 = None

        self._rescaler2 = itk.itkRescaleIntensityImageFilterF2F2_New()
        self._rescaler2.SetOutputMinimum(0)
        self._rescaler2.SetOutputMaximum(255)
        self._itkExporter2 = itk.itkVTKImageExportF2_New()
        self._itkExporter2.SetInput(self._rescaler2.GetOutput())
        self._vtkImporter2 = vtk.vtkImageImport()
        CVIPy.ConnectITKF2ToVTK(self._itkExporter2.GetPointer(),
                                self._vtkImporter2)
Example #3
0
    def set_input(self, idx, inputStream):
        if idx == 0:
            if inputStream != self._imageStack:
                # if it's None, we have to take it
                if inputStream == None:
                    # disconnect
                    del self._transformStack[:]
                    self._destroyIPWs()
                    self._imageStack = None
                    self._pairNumber = -1
                    return

                # let's setup for a new stack!
                try:
                    assert (
                        inputStream.__class__.__name__ == 'imageStackClass')
                    inputStream.Update()
                    assert (len(inputStream) >= 2)
                except Exception:
                    # if the Update call doesn't work or
                    # if the input list is not long enough (or unsizable),
                    # we don't do anything
                    raise TypeError, \
                          "register2D requires an ITK Image Stack of minimum length 2 as input."

                # now check that the imageStack is the same size as the
                # transformStack
                if self._inputTransformStack and \
                   len(inputStream) != len(self._inputTransformStack):
                    raise TypeError, \
                          "The Image Stack you are trying to connect has a\n" \
                          "different length than the connected Transform\n" \
                          "Stack."

                self._imageStack = inputStream

                if self._inputTransformStack:
                    self._copyInputTransformStack()
                else:
                    # create a new transformStack
                    del self._transformStack[:]
                    # the first transform is always identity
                    for dummy in self._imageStack:
                        self._transformStack.append(
                            itk.itkEuler2DTransform_New())
                        self._transformStack[-1].SetIdentity()

                self._showImagePair(1)

        else:  # closes if idx == 0 block
            if inputStream != self._inputTransformStack:
                if inputStream == None:
                    # we disconnect, but we keep the transforms we have
                    self._inputTransformStack = None
                    return

                try:
                    assert(inputStream.__class__.__name__ == \
                           'transformStackClass')
                except Exception:
                    raise TypeError, \
                          "register2D requires an ITK Transform Stack on " \
                          "this port."

                inputStream.Update()

                if len(inputStream) < 2:
                    raise TypeError, \
                          "The input transform stack should be of minimum " \
                          "length 2."

                if self._imageStack and \
                   len(inputStream) != len(self._imageStack):
                    raise TypeError, \
                          "The Transform Stack you are trying to connect\n" \
                          "has a different length than the connected\n" \
                          "Transform Stack"

                self._inputTransformStack = inputStream

                if self._imageStack:
                    self._copyInputTransformStack()
                    self._showImagePair(self._pairNumber)
Example #4
0
    def set_input(self, idx, inputStream):
        if idx == 0:
            if inputStream != self._imageStack:
                # if it's None, we have to take it
                if inputStream == None:
                    # disconnect
                    del self._transformStack[:]
                    self._destroyIPWs()
                    self._imageStack = None
                    self._pairNumber = -1
                    return

                # let's setup for a new stack!
                try:
                    assert(inputStream.__class__.__name__ == 'imageStackClass')
                    inputStream.Update()
                    assert(len(inputStream) >= 2)
                except Exception:
                    # if the Update call doesn't work or
                    # if the input list is not long enough (or unsizable),
                    # we don't do anything
                    raise TypeError, \
                          "register2D requires an ITK Image Stack of minimum length 2 as input."

                # now check that the imageStack is the same size as the
                # transformStack
                if self._inputTransformStack and \
                   len(inputStream) != len(self._inputTransformStack):
                    raise TypeError, \
                          "The Image Stack you are trying to connect has a\n" \
                          "different length than the connected Transform\n" \
                          "Stack."

                self._imageStack = inputStream

                if self._inputTransformStack:
                    self._copyInputTransformStack()
                else:
                    # create a new transformStack
                    del self._transformStack[:]
                    # the first transform is always identity
                    for dummy in self._imageStack:
                        self._transformStack.append(
                            itk.itkEuler2DTransform_New())
                        self._transformStack[-1].SetIdentity()

                self._showImagePair(1)

        else: # closes if idx == 0 block
            if inputStream != self._inputTransformStack:
                if inputStream == None:
                    # we disconnect, but we keep the transforms we have
                    self._inputTransformStack = None
                    return

                try:
                    assert(inputStream.__class__.__name__ == \
                           'transformStackClass')
                except Exception:
                    raise TypeError, \
                          "register2D requires an ITK Transform Stack on " \
                          "this port."

                inputStream.Update()

                if len(inputStream) < 2:
                    raise TypeError, \
                          "The input transform stack should be of minimum " \
                          "length 2."
                    
                if self._imageStack and \
                   len(inputStream) != len(self._imageStack):
                    raise TypeError, \
                          "The Transform Stack you are trying to connect\n" \
                          "has a different length than the connected\n" \
                          "Transform Stack"

                self._inputTransformStack = inputStream

                if self._imageStack:
                    self._copyInputTransformStack()
                    self._showImagePair(self._pairNumber)