def readFromLogFile(lcmLogFilename, fileSaveLocation, channelName="OPENNI_FRAME", cameraName="OPENNI_FRAME_LEFT"): """ Reads from lcmlog located at filename. Goes through each images_t() message on OPENNI_FRAME channel and saves it as a png in fileSaveLocation :param filename: Name of lcmlogfile :return: """ # check if fileSaveLocation is an existing directory, if not create it. if not os.path.isdir(fileSaveLocation): os.makedirs(fileSaveLocation) # first construct imageManager object imageManager = cameraview.ImageManager() imageManager.queue.addCameraStream(channelName, cameraName, lcmbotcore.images_t.LEFT) imageManager.addImage(cameraName) # open the lcm log imageManager.queue.openLCMFile(lcmLogFilename) imageCapture = ImageCapture(imageManager, fileSaveLocation, cameraName = "OPENNI_FRAME_LEFT", setupCallback=False) while (imageManager.queue.readNextImagesMessage()): print "imageManager read next image" imageCapture.saveImage() print "reached end of lcm log" return
def main(): app = ConsoleApp() view = app.createView(useGrid=False) imageManager = cameraview.ImageManager() cameraView = cameraview.CameraView(imageManager, view) view.show() app.start()
def setupImageStreams(self): streams = [CAPTURE_CHANNEL, 'VIDEO_PLAYBACK_IMAGE'] self.imageManager = cameraview.ImageManager() for channelName in streams: self.imageManager.queue.addCameraStream(channelName) self.imageManager.addImage(channelName) self.currentStream = streams[0] self.cameraView = cameraview.CameraImageView(self.imageManager, self.currentStream, view=self.view) self.cameraView.eventFilterEnabled = False self.view.renderWindow().GetInteractor().SetInteractorStyle( vtk.vtkInteractorStyleImage())
def main(): app = ConsoleApp() view = app.createView(useGrid=False) view.orientationMarkerWidget().Off() view.backgroundRenderer().SetBackground([0, 0, 0]) view.backgroundRenderer().SetBackground2([0, 0, 0]) cameraChannel = parseChannelArgument() imageManager = cameraview.ImageManager() imageManager.queue.addCameraStream(cameraChannel) imageManager.addImage(cameraChannel) cameraView = cameraview.CameraImageView(imageManager, cameraChannel, view=view) cameraView.eventFilterEnabled = False view.renderWindow().GetInteractor().SetInteractorStyle( vtk.vtkInteractorStyleImage()) view.show() app.start()
def __init__(self): self.imageManager = cameraview.ImageManager()
def initImageManager(): imageManager = cameraview.ImageManager() cameraview.imageManager = imageManager return imageManager
def setup(self): args = self.parseArgs() imageManager = cameraview.ImageManager() self.imageManager = imageManager channel = args.channel imageType = args.imageType self.app = consoleapp.ConsoleApp() self.views = [] if imageType == 'rgb': imageName = channel imageManager.queue.addCameraStream(channel, imageName, -1) imageManager.addImage(imageName) cameraView = cameraview.CameraImageView( imageManager, imageName, view=PythonQt.dd.ddQVTKWidgetView()) cameraView.eventFilterEnabled = False cameraView.view.renderWindow().GetInteractor().SetInteractorStyle( vtk.vtkInteractorStyleImage()) cameraView.view.resize(640, 480) self.views.append(cameraView.view) self.cameraView = cameraView elif imageType == 'rgbd': imageName = channel + '_LEFT' imageManager.queue.addCameraStream(channel, imageName, 0) imageManager.addImage(imageName) cameraView = cameraview.CameraImageView( imageManager, imageName, view=PythonQt.dd.ddQVTKWidgetView()) cameraView.eventFilterEnabled = False cameraView.view.renderWindow().GetInteractor().SetInteractorStyle( vtk.vtkInteractorStyleImage()) self.views.append(cameraView.view) imageName2 = channel + '_D' if args.disparity: imageManager.queue.addCameraStream( channel, imageName2, lcmbotcore.images_t.DISPARITY_ZIPPED) else: imageManager.queue.addCameraStream( channel, imageName2, lcmbotcore.images_t.DEPTH_MM_ZIPPED) imageManager.addImage(imageName2) cameraView2 = cameraview.CameraImageView( imageManager, imageName2, view=PythonQt.dd.ddQVTKWidgetView()) cameraView2.eventFilterEnabled = False cameraView2.useImageColorMap = True cameraView2.view.renderWindow().GetInteractor().SetInteractorStyle( vtk.vtkInteractorStyleImage()) self.views.append(cameraView2.view) if args.pointcloud: from director import segmentation cameraview.imageManager = imageManager pointCloudObj = segmentation.DisparityPointCloudItem( 'Point cloud', channel, imageName, imageManager) view = PythonQt.dd.ddQVTKWidgetView() pointCloudObj.addToView(view) om.addToObjectModel(pointCloudObj) pointCloudObj.setProperty('Visible', True) pointCloudObj.setProperty('Target FPS', 30) pointCloudObj.setProperty('Max Range', 30) pointCloudObj.setProperty('Remove Size', 0) viewBehaviors = viewbehaviors.ViewBehaviors(view) view.camera().SetPosition([0, 0, 0]) view.camera().SetFocalPoint([0, 0, 1]) view.camera().SetViewUp([0, -1, 0]) view.camera().SetViewAngle(45) self.views.append(view) self.cameraView = cameraView self.cameraView2 = cameraView2 w = QtGui.QWidget() l = QtGui.QHBoxLayout(w) for view in self.views: l.addWidget(view) l.setContentsMargins(0, 0, 0, 0) w.resize(640 * len(self.views), 480) w.show() self.addShortcuts(w) self.widget = w
# initialize the playback panel planPlayback = planplayback.PlanPlayback() manipPlanner = robotplanlistener.ManipulationPlanDriver(ikPlanner=None) playbackPanel = playbackpanel.PlaybackPanel(planPlayback, playbackRobotModel, playbackJointController, robotStateModel, robotStateJointController, manipPlanner) manipPlanner.connectPlanReceived(playbackPanel.setPlan) # initialize pointcloud lcm pointcloudlcm.init(view) # initialize camera view cameraChannel = 'MULTISENSE_CAMERA_LEFT' imageManager = cameraview.ImageManager() imageManager.queue.addCameraStream(cameraChannel) imageManager.addImage(cameraChannel) cameraView = cameraview.CameraImageView(imageManager, cameraChannel, view=app.createView(useGrid=False)) # show widgets with a grid layout w = QtGui.QWidget() l = QtGui.QGridLayout(w) l.addWidget(view, 0, 0) l.addWidget(cameraView.view, 0, 1) l.addWidget(playbackPanel.widget, 1, 0, 1, 2) # row, column, row span, column span l.setContentsMargins(0, 0, 0, 0) w.resize(1024, 600)