Я создал графический интерфейс для вывода веб-камеры с помощью QLabel.Теперь я хочу сделать функцию сохранения кадра с веб-камеры.Я добавил функцию для кнопки, которая делает захват.Затем я поместил его в функцию update_frame , но когда я нажимал кнопку, она снова и снова возвращалась к ней, печатая мое подтверждающее сообщение снова и снова.Где я могу поставить функцию capture_image ? Может кто-нибудь помочь мне с этим.Это было бы очень полезно.
def start_cam(self):
self.capture=cv2.VideoCapture(0)
self.capture.set(cv2.CAP_PROP_FRAME_HEIGHT,180)
self.capture.set(cv2.CAP_PROP_FRAME_WIDTH,316)
self.timer = QTimer()
self.timer.timeout.connect(self.update_frame)
self.timer.start(5)
def update_frame(self):
ret,self.image=self.capture.read()
self.image=cv2.flip(self.image,1)
# Display Image Function
self.displayImage(self.image,1)
# Capture Image Function
self.save_idButton.clicked.connect(self.capture_image)
def displayImage(self,img,window=1):
qformat=QImage.Format_Indexed8
if len(img.shape)==3: #[0]=rows, [1]=cols [2]=channels
if img.shape[2]==4:
qformat=QImage.Format_RGBA8888
else:
qformat=QImage.Format_RGB888
outImage=QImage(img,img.shape[1],img.shape[0],img.strides[0],qformat)
#BRG to RGB
outImage=outImage.rgbSwapped()
if window==1:
self.frame_2.setPixmap(QPixmap.fromImage(outImage))
self.frame_2.setScaledContents(True)
def capture_image(self):
id_number = self.lineEdit.text()
cv2.imwrite("Employee IDs/"+id_number+".png",self.image)
ctypes.windll.user32.MessageBoxW(0, " ID Saved Successfuly", "Success", 1)