def __init__(self, servocontrollerdevice=None): """Create the DemoFrame.""" wx.Frame.__init__(self, None, title="Jira controller") self.Bind(wx.EVT_CLOSE, self.OnClose) self.showOpenCVPanel = True self.showOpenCVPanel = False self.useServoController = self.showOpenCVPanel #self.useServoController = False self.showJiraPanel = True #self.showJiraPanel = False # Build the menu bar MenuBar = wx.MenuBar() FileMenu = wx.Menu() item = FileMenu.Append(wx.ID_EXIT, text="&Quit") self.Bind(wx.EVT_MENU, self.OnQuit, item) MenuBar.Append(FileMenu, "&File") self.SetMenuBar(MenuBar) config = Config() browser = Browser(config) self.opencv = None self.servocontroller = None if self.showOpenCVPanel: self.opencv = OpenCV(config) if self.useServoController: self.servocontroller = CalibratedServoController(PololuMaestroServoController(device=servocontrollerdevice)) sizer = wx.BoxSizer(wx.HORIZONTAL) self.SetSizer(sizer) if self.showJiraPanel: self.jiraPanel = JiraPanel(self, config, browser, self.opencv) sizer.Add(self.jiraPanel, 0, wx.EXPAND | wx.ALL, 5) if self.showOpenCVPanel: self.opencvPanel = OpenCVPanel(self, config, browser, self.opencv, self.servocontroller) sizer.Add(self.opencvPanel, 1, wx.EXPAND | wx.ALL, 5) self.Fit()
parser.add_argument("maxcount", type=int) parser.add_argument("frames_per_second", type=float) parser.add_argument("--start_angle", type=int, default=None) parser.add_argument("--end_angle", type=int, default=None) logging.info("Starting") args = parser.parse_args() capture = cv2.VideoCapture(0) logging.info("Got videocapture") imagecount = 0 if not args.start_angle is None and not args.end_angle is None: servocontroller = CalibratedServoController(PololuMaestroServoController()) servocontroller.set_servo_target_angle(args.start_angle) angle_frame_increment = float(args.start_angle - args.end_angle) / float(args.maxcount) while not servocontroller.servo_has_settled(): time.sleep(0.1) else: servocontroller = None maxcount = args.maxcount imagefilenamecounter = 1 while imagecount < maxcount: time.sleep(1.0 / args.frames_per_second) ret, image = capture.read() if ret: imagecount += 1