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
Example #3
0
    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)
Example #5
0
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)