def __init__(self, window_title='Depth Image', scale=1): self.scale = scale depthImageColorByRange = [0.0, 4.0] lut = vtk.vtkLookupTable() lut.SetNumberOfColors(256) lut.SetHueRange(0, 0.667) # red to blue lut.SetRange(depthImageColorByRange) # map red (near) to blue (far) lut.SetRampToLinear() lut.Build() self.depthScaleFilter = vtk.vtkImageShiftScale() self.depthScaleFilter.SetScale(scale) self.depthScaleFilter.SetOutputScalarTypeToUnsignedShort() self.depthImageLookupTable = lut self.imageMapToColors = vtk.vtkImageMapToColors() self.imageMapToColors.SetLookupTable(self.depthImageLookupTable) self.imageMapToColors.SetInputConnection( self.depthScaleFilter.GetOutputPort()) self.imageView = imageview.ImageView() self.imageView.view.setWindowTitle(window_title) self.imageView.setImage(self.imageMapToColors.GetOutput())
def drawNumpyImage(title, img): """ Draws a new image using ImageView """ imageView = imageview.ImageView() imageView.view.setWindowTitle(title) imageView.showNumpyImage(img) imageView.show() return imageView
def initDepthImageView(self): self.depthImageColorByRange = [0.0, 4.0] lut = vtk.vtkLookupTable() lut.SetNumberOfColors(256) lut.SetHueRange(0, 0.667) # red to blue lut.SetRange( self.depthImageColorByRange) # map red (near) to blue (far) lut.SetRampToLinear() lut.Build() im = vtk.vtkImageMapToColors() im.SetLookupTable(lut) self.depthImageLookupTable = lut self.imageMapToColors = im self.imageView = imageview.ImageView() self.imageView.view.setWindowTitle('Depth image') self.imageView.setImage(self.imageMapToColors.GetOutput())
def __init__(self, app, view, cameraIntrinsics=None, debug=True, data_directory=None): """ This shouldn't be called directly. Should only be called via the staticmethod from_data_folder :param app: :type app: :param view: :type view: :param cameraIntrinsics: :type cameraIntrinsics: :param debug: :type debug: :param data_directory: The 'processed' subfolder of a top level log folder :type data_directory: """ self.app = app self.views = dict() self.vis = True self.debug = debug self.views['foreground'] = view self.views['background'] = self.createBackgroundView() self.threshold = 10 if cameraIntrinsics is None: self.cameraIntrinsics = makeDefaultCameraIntrinsics() else: self.cameraIntrinsics = cameraIntrinsics # set the views to use the camera intrinsics for _, view in self.views.iteritems(): director_utils.setCameraIntrinsics(view, self.cameraIntrinsics, lockViewSize=True) self.depthScanners = dict() self.depthScanners['foreground'] = initDepthScanner(self.app, self.views['foreground'], widgetArea=QtCore.Qt.RightDockWidgetArea) self.depthScanners['background'] = initDepthScanner(self.app, self.views['background'], widgetArea=QtCore.Qt.LeftDockWidgetArea) # used for point cloud view self.changeDetectionPointCloudView = PythonQt.dd.ddQVTKWidgetView() self.changeDetectionPointCloudView.setWindowTitle('Change Detection Pointcloud') dock = self.app.app.addWidgetToDock(self.changeDetectionPointCloudView, QtCore.Qt.BottomDockWidgetArea) dock.setMinimumWidth(300) dock.setMinimumHeight(300) # used for visualizing the depth image/mask coming from change detection self.changeDetectionImageVisualizer = imageview.ImageView() self.changeDetectionImageVisualizer.view.setWindowTitle('Depth Image Change') dock = self.app.app.addWidgetToDock(self.changeDetectionImageVisualizer.view, QtCore.Qt.BottomDockWidgetArea) dock.setMinimumWidth(300) dock.setMinimumHeight(300)
from director import imageview from director import consoleapp import director.vtkAll as vtk import director.vtkNumpy as vnp # create a vtkImageData object s = vtk.vtkRTAnalyticSource() s.SetWholeExtent(-100, 100, -100, 100, 0, 0) s.Update() image = s.GetOutput() # get image data as a numpy array w, h, _ = image.GetDimensions() img = vnp.getNumpyFromVtk(image, 'RTData').reshape(h, w, -1) # show numpy image data view = imageview.ImageView() view.showNumpyImage(img) view.show() # convert back to vtkImageData and show view2 = imageview.ImageView() view2.setImage(vnp.numpyToImageData(img)) view2.show() consoleapp.ConsoleApp.start()
def showImage(image): imageView = imageview.ImageView() imageView.setImage(image) imageView.view.show() imageView.resetCamera() imageViews.append(imageView)