1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| class Camera(QWidget):
def __init__(self):
timestamp = time.strftime("%Y%m%d%H%M%S")
cap = cv2.VideoCapture(0)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output_{}.avi'.format(timestamp),fourcc, 25.0, (640, 480))
while( cap.isOpened() ):
ret, frame = cap.read()
if ret == True:
frame = cv2.flip(frame,1)
out.write(frame)
cv2.imshow('frame' , frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
class MainWindow(QMainWindow):
# constructor
def __init__(self):
super().__init__()
# setting geometry
self.setGeometry(100, 100,
800, 600)
# setting style sheet
self.setStyleSheet("background : lightgrey;")
toolbar = QToolBar("Camera Tool Bar")
self.addToolBar(toolbar)
click_action = QAction("Click photo", self)
click_action.setStatusTip("This will capture picture")
click_action.setToolTip("Capture picture")
click_action.triggered.connect(self.click_photo)
toolbar.addAction(click_action)
self.main_widget = QWidget()
self.setCentralWidget(self.main_widget)
self.layout = QVBoxLayout(self.main_widget)
self.layout.addWidget(Camera())
self.layout.addItem(QSpacerItem(20, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding))
self.status = QStatusBar()
self.status.setStyleSheet("background : white;")
self.setStatusBar(self.status)
self.setWindowTitle("PyQt5 Cam")
self.show() |
Partager