def PaintVOI(self): wholeExtent = self.Image.GetWholeExtent() origin = self.Image.GetOrigin() spacing = self.Image.GetSpacing() paintedVOI = [0,0,0,0,0,0] paintedVOI[0] = max(wholeExtent[0],int(math.ceil((self.BoxBounds[0]-origin[0])/spacing[0]))) paintedVOI[1] = min(wholeExtent[1],int(math.floor((self.BoxBounds[1]-origin[0])/spacing[0]))) paintedVOI[2] = max(wholeExtent[2],int(math.ceil((self.BoxBounds[2]-origin[1])/spacing[1]))) paintedVOI[3] = min(wholeExtent[3],int(math.floor((self.BoxBounds[3]-origin[1])/spacing[1]))) paintedVOI[4] = max(wholeExtent[4],int(math.ceil((self.BoxBounds[4]-origin[2])/spacing[2]))) paintedVOI[5] = min(wholeExtent[5],int(math.floor((self.BoxBounds[5]-origin[2])/spacing[2]))) imageBoxPainter = vtkvmtk.vtkvmtkImageBoxPainter() imageBoxPainter.SetInput(self.Image) imageBoxPainter.SetBoxExtent(paintedVOI) imageBoxPainter.SetBoxDefinitionToUseExtent() imageBoxPainter.SetPaintValue(self.PaintValue) imageBoxPainter.Update() self.PaintedImage.ShallowCopy(imageBoxPainter.GetOutput()) self.PaintedImage.Update() if self.PaintedImage.GetSource(): self.PaintedImage.GetSource().UnregisterAllOutputs()
def PaintVOI(self): wholeExtent = self.Image.GetWholeExtent()[:] origin = self.Image.GetOrigin() spacing = self.Image.GetSpacing() paintedVOI = [0, 0, 0, 0, 0, 0] paintedVOI[0] = max( wholeExtent[0], int(math.ceil((self.BoxBounds[0] - origin[0]) / spacing[0]))) paintedVOI[1] = min( wholeExtent[1], int(math.floor((self.BoxBounds[1] - origin[0]) / spacing[0]))) paintedVOI[2] = max( wholeExtent[2], int(math.ceil((self.BoxBounds[2] - origin[1]) / spacing[1]))) paintedVOI[3] = min( wholeExtent[3], int(math.floor((self.BoxBounds[3] - origin[1]) / spacing[1]))) paintedVOI[4] = max( wholeExtent[4], int(math.ceil((self.BoxBounds[4] - origin[2]) / spacing[2]))) paintedVOI[5] = min( wholeExtent[5], int(math.floor((self.BoxBounds[5] - origin[2]) / spacing[2]))) # extent trick. TODO: fix vtkvmtkImageBoxPainter paintedVOI[0] -= wholeExtent[0] paintedVOI[1] -= wholeExtent[0] paintedVOI[2] -= wholeExtent[2] paintedVOI[3] -= wholeExtent[2] paintedVOI[4] -= wholeExtent[4] paintedVOI[5] -= wholeExtent[4] translate = vtk.vtkImageTranslateExtent() translate.SetInput(self.Image) translate.SetTranslation(-wholeExtent[0], -wholeExtent[2], -wholeExtent[4]) translate.Update() imageBoxPainter = vtkvmtk.vtkvmtkImageBoxPainter() imageBoxPainter.SetInput(translate.GetOutput()) imageBoxPainter.SetBoxExtent(paintedVOI) imageBoxPainter.SetBoxDefinitionToUseExtent() imageBoxPainter.SetPaintValue(self.PaintValue) imageBoxPainter.Update() translate = vtk.vtkImageTranslateExtent() translate.SetInput(imageBoxPainter.GetOutput()) translate.SetTranslation(wholeExtent[0], wholeExtent[2], wholeExtent[4]) translate.Update() self.Image.ShallowCopy(translate.GetOutput())
def PaintVOI(self): wholeExtent = self.Image.GetWholeExtent()[:] origin = self.Image.GetOrigin() spacing = self.Image.GetSpacing() paintedVOI = [0,0,0,0,0,0] paintedVOI[0] = max(wholeExtent[0],int(math.ceil((self.BoxBounds[0]-origin[0])/spacing[0]))) paintedVOI[1] = min(wholeExtent[1],int(math.floor((self.BoxBounds[1]-origin[0])/spacing[0]))) paintedVOI[2] = max(wholeExtent[2],int(math.ceil((self.BoxBounds[2]-origin[1])/spacing[1]))) paintedVOI[3] = min(wholeExtent[3],int(math.floor((self.BoxBounds[3]-origin[1])/spacing[1]))) paintedVOI[4] = max(wholeExtent[4],int(math.ceil((self.BoxBounds[4]-origin[2])/spacing[2]))) paintedVOI[5] = min(wholeExtent[5],int(math.floor((self.BoxBounds[5]-origin[2])/spacing[2]))) # extent trick. TODO: fix vtkvmtkImageBoxPainter paintedVOI[0] -= wholeExtent[0] paintedVOI[1] -= wholeExtent[0] paintedVOI[2] -= wholeExtent[2] paintedVOI[3] -= wholeExtent[2] paintedVOI[4] -= wholeExtent[4] paintedVOI[5] -= wholeExtent[4] translate = vtk.vtkImageTranslateExtent() translate.SetInput(self.Image) translate.SetTranslation(-wholeExtent[0],-wholeExtent[2],-wholeExtent[4]) translate.Update() imageBoxPainter = vtkvmtk.vtkvmtkImageBoxPainter() imageBoxPainter.SetInput(translate.GetOutput()) imageBoxPainter.SetBoxExtent(paintedVOI) imageBoxPainter.SetBoxDefinitionToUseExtent() imageBoxPainter.SetPaintValue(self.PaintValue) imageBoxPainter.Update() translate = vtk.vtkImageTranslateExtent() translate.SetInput(imageBoxPainter.GetOutput()) translate.SetTranslation(wholeExtent[0],wholeExtent[2],wholeExtent[4]) translate.Update() self.Image.ShallowCopy(translate.GetOutput())