示例#1
0
class Shwabe(object):
    def __init__(self):
        self.camera = Camera()
        self.processor = ImageProcessor()
        # self.mouse = Mouse(self.camera.shape[:2])
        self.mouse = Mouse((480, 640))
        self.brain = MainBrain()
        # self.mouse = Mouse(self.camera.get_camera_view()[:2])

    def main_loop(self):
        while True:
            input_frame = self.camera.get_frame()
            # print("===========", input_frame.shape)
            self.mouse.update_view_size(input_frame.shape)
            # self.processor.extract_morph_from_img(input_frame)
            # center = self.processor.draw_circle()
            # if center:
            #     self.mouse.move(center)
            # self.processor.draw_line()
            # self.processor.draw_windows()

            masked_image = self.processor.extract_mask(input_frame)

            self.brain.find_contours(masked_image)
            self.brain.find_defects_point()

            self.brain.draw_circle()
            # self.brain.draw_line()

            # self.brain.move_stats
            self.mouse.search_trigger(self.brain.move_stats,
                                      self.brain.move_cap,
                                      self.brain.movement_delta)
            self.brain.show_windows()
示例#2
0
    def __init__(self):

        self.cameras = []
        self.selected_cam = 0
        for i in range(3):
            camera = Camera(camera=i)  # first camera by default
            if camera.valid or not len(self.cameras):
                self.cameras.append(camera)
            else:
                break

        self.w, self.h = 0, 0
        self.pressed = 0

        self.processor = faceTracking(250)

        self.bpm_plot = False
        self.plot_title = "Data display - raw signal (top) and PSD (bottom)"

        self.key_controls = {
            "s": self.toggle_search,
            "d": self.toggle_display_plot,
            # "c": self.toggle_cam,
            "f": self.write_csv
        }
示例#3
0
    def __init__(self, cam_num=0, test=False):
        super().__init__()
        self.camera = Camera(cam_num)
        self.init_gui()

        if (test == False):
            self.set_timer()
            self.camera.initialize()
            self.timer.start(1)
            # zuc detection
            w, h = self.camera.get_wh()
            self.result = Result(w, h)

        # file path
        self.weights = ""
        self.cfg = ""
        self.h5 = ""

        self.coor = False
示例#4
0
 def __init__(self, camera=Camera()):
     self.headers = {
         # Request headers. Replace the placeholder key below with your subscription key.
         'Content-Type': 'application/octet-stream',
         'Ocp-Apim-Subscription-Key': 'a3a8071ffed142c0b194c38c6cdbb104',
     }
     self.params = urllib.parse.urlencode({})
     self.camera = camera
     self.conn = None
     self.body = []
     self.response = None
     self.data = None
     self.emotion = {}
    def __init__(self):
        self.cameras = []
        self.selected_cam = 0

        self.key = "q"
        self.app = getpulse()
        self.flag = False
        self.color = (0, 0, 255)
        self.plot_title = "Data display - raw signal (top) and PSD (bottom)"
        self.bpm_plot = False
        self.pressed = 0
        self.key_controls = {
            "d": self.disp_make_plot,
            "c": self.toggle_cam,
        }

        for i in range(3):
            self.camera = Camera(camera=i)
            if self.camera.valid or not len(self.cameras):
                self.cameras.append(self.camera)
            else:
                break
示例#6
0
class StartWindow(QMainWindow):
    def __init__(self, cam_num=0, test=False):
        super().__init__()
        self.camera = Camera(cam_num)
        self.init_gui()

        if (test == False):
            self.set_timer()
            self.camera.initialize()
            self.timer.start(1)
            # zuc detection
            w, h = self.camera.get_wh()
            self.result = Result(w, h)

        # file path
        self.weights = ""
        self.cfg = ""
        self.h5 = ""

        self.coor = False

    def init_gui(self):
        # main window settings
        window_width = 680
        window_height = 680
        self.resize(window_width, window_height)
        self.setMinimumSize(QSize(window_width, window_height))
        self.setMaximumSize(QSize(window_width, window_height))
        self.setWindowTitle("gmmpg - zucchini")
        self.setWindowIcon(QIcon("icon.png"))

        self.centralWidget = QWidget(self)
        self.centralWidget.resize(window_width, window_height)

        # load files
        self.label_w = QLabel("weights", self.centralWidget)
        self.label_w.setGeometry(20, 20, 100, 30)
        self.path_w = QLabel("select file then click \"start\" button",
                             self.centralWidget)
        self.path_w.setGeometry(120, 20, 420, 30)
        self.btn_w = QPushButton("select", self.centralWidget)
        self.btn_w.setGeometry(QRect(560, 20, 100, 30))
        self.btn_w.clicked.connect(lambda: self.select_file("weights"))

        self.label_c = QLabel("config", self.centralWidget)
        self.label_c.setGeometry(20, 60, 100, 30)
        self.path_c = QLabel("select file then click \"start\" button",
                             self.centralWidget)
        self.path_c.setGeometry(120, 60, 420, 30)
        self.btn_c = QPushButton("select", self.centralWidget)
        self.btn_c.setGeometry(QRect(560, 60, 100, 30))
        self.btn_c.clicked.connect(lambda: self.select_file("cfg"))

        self.label_m = QLabel("model", self.centralWidget)
        self.label_m.setGeometry(20, 100, 100, 30)
        self.path_m = QLabel("select file then click \"start\" button",
                             self.centralWidget)
        self.path_m.setGeometry(120, 100, 420, 30)
        self.btn_m = QPushButton("select", self.centralWidget)
        self.btn_m.setGeometry(QRect(560, 100, 100, 30))
        self.btn_m.clicked.connect(lambda: self.select_file("h5"))

        # webcam widget
        self.label_img = QLabel(self.centralWidget)
        self.label_img.setGeometry(QRect(20, 140, 640, 480))
        self.label_img.setFrameShape(QFrame.Box)
        self.label_img.setText("Loading...")

        # buttons
        self.btn_start = QPushButton("start", self.centralWidget)
        self.btn_start.setGeometry(QRect(20, 630, 100, 30))
        self.btn_start.clicked.connect(self.start_detect)
        self.btn_capture = QPushButton("capture", self.centralWidget)
        self.btn_capture.setGeometry(QRect(450, 630, 100, 30))
        self.btn_capture.clicked.connect(self.camera.capture)
        self.btn_record = QPushButton("record", self.centralWidget)
        self.btn_record.setGeometry(QRect(560, 630, 100, 30))
        self.btn_record.clicked.connect(self.record)

        #result
        self.label_result = QLabel(self.centralWidget)
        self.label_result.setGeometry(QRect(140, 630, 250, 30))
        self.label_result.setFont(QFont('Arial', 13))
        self.label_result.setText("Not Started")

    def select_file(self, ext):
        fname = QFileDialog.getOpenFileName(self, 'Open file', './',
                                            '*.' + ext)
        if fname[0]:
            if (ext == "h5"):
                self.h5 = fname[0]
                self.path_m.setText(self.h5)
            elif (ext == "weights"):
                self.weights = fname[0]
                self.path_w.setText(self.weights)
            elif (ext == "cfg"):
                self.cfg = fname[0]
                self.path_c.setText(self.cfg)

    def start_detect(self):
        check = self.result.initialize(WEIGHTS=self.weights,
                                       CFG=self.cfg,
                                       H5=self.h5)
        if check == 1:
            self.timer.timeout.connect(self._class)
        if check == 2:
            self.coor = True
            thr = threading.Thread(target=self.result.yolo.find_xy,
                                   daemon=True)
            thr.start()
            self.timer.timeout.connect(self._xy)
        if check == 3:
            self.coor = True
            thr = threading.Thread(target=self.result.yolo.find_xy,
                                   daemon=True)
            thr.start()
            self.timer.timeout.connect(self._res)

    def _class(self):
        classname = self.result.get_class(self.frame)
        self.label_result.setText(classname)

    def _xy(self):
        xy = self.result.get_xy()
        self.label_result.setText(xy)

    def _res(self):
        res = self.result.get_res(self.frame)
        self.label_result.setText(res)

    def record(self):
        self.camera.rec = False if self.camera.rec else True
        print("recording...") if self.camera.rec else print("record stop")
        text = "stop" if self.camera.rec else "record"
        self.btn_record.setText(text)

        if self.camera.rec:
            self.camera.setOut()
            self.timer.timeout.connect(self._record)

        else:
            if self.camera.out is not None:
                self.camera.out.release()
                self.camera.out = None
        '''
        [mpeg4 @ 000001c87838ac80] Invalid pts (4) <= last (4)
        
        https://github.com/PyAV-Org/PyAV/issues/202
        '''

    def _record(self):
        if self.camera.rec:
            self.camera.record()

    def set_timer(self):
        # timer to update frame
        self.timer = QTimer()
        self.timer.timeout.connect(self.update_frame)

    def update_frame(self):
        ret, self.frame = self.camera.get_frame()
        if ret:
            if self.coor:
                self.result.yolo.update_frame(self.frame)
                if self.result.yolo.found:
                    self.frame = self.result.yolo.print_rec(self.frame)
            try:
                QImg = QImage(self.frame.data, self.frame.shape[1],
                              self.frame.shape[0], QImage.Format_RGB888)
                pixMap = QPixmap.fromImage(QImg)
                self.label_img.setPixmap(pixMap)
            except Exception as e:
                self.label_img.setText(str(e))
        else:
            self.label_img.setText("Cannot load camera")
示例#7
0
import time

timestamp = time.time()
from device import Camera, Light
from kernal import test
print('import  时间为 ', time.time() - timestamp)

timestamp = time.time()
light = Light()
light.open([])
camera = Camera()
camera.open()
print('打开外设时间为 ', time.time() - timestamp)

while True:
    timestamp = time.time()
    img = camera.get()
    if img is None:
        print('error to get a photo')
        time.sleep(1)
    else:
        count = test(img)
        duration = time.time() - timestamp
        if count == 0:
            light.open([])
            print('无包,检测时间为 ', duration)
        elif count == 1:
            light.open([0, 1])
            print('单包,检测时间为 ', duration)
        else:
            light.open([0, 1, 2, 3])
示例#8
0
 def __init__(self):
     self.camera = Camera()
     self.processor = ImageProcessor()
     # self.mouse = Mouse(self.camera.shape[:2])
     self.mouse = Mouse((480, 640))
     self.brain = MainBrain()
 def __init__(self):
     super(EmotionAnalyzeService, self).__init__()
     self.my_camera = Camera()
     self.api = EmotionAPI()
示例#10
0
 def start_video_capture(self, filename):
     Camera.start_video_capture(filename)
示例#11
0
    translator.load(path + 'first.qm')
    app.installTranslator(translator)
    view.engine().quit.connect(app.quit)
    view.setSource(QUrl(path + 'Main.qml'))
    signal_handler()

    #app.setOverrideCursor(Qt.BlankCursor)
    #view.setFlags(Qt.WindowFullscreenButtonHint)
    #view.setFlags(Qt.FramelessWindowHint)
    #view.resize(1023, 768)

    configuration_log()
    get_disk_info()
    check_database("pakpobox")

    view.show()

    PushMessage.start_sync_message()
    PushMessage.start_time_task()
    PullMessage.start_pull_message()
    PushMessage.start_upgrade_task()
    BoxService.start_upgrade_init()

    pygame.init()
    Camera.init_camera()
    MusicService.init_music()

    BoxService.start_set_version()

    app.exec_()