Привет всем! Мне нужна ваша помощь для решения возникшей проблемы. У меня есть следующий код, где моя веб-камера активируется и начинает запись без проблем.
Но мне нужно создать три бота Record, Pause и Stop, с помощью gtk, но я не знаю, как я могу сделать это с кодом
import cv2
import numpy as np
from datetime import datetime
import gtk
def show_webcam(mirror=False):
cam = cv2.VideoCapture(0)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
frame_width = int(cam.get(3))
frame_height = int(cam.get(4))
filename = datetime.now().strftime("%Y-%m-%d_%H.%M.%S") + ".avi"
out = cv2.VideoWriter(filename,fourcc, 30, (frame_width,frame_height))
if event == cv2.EVENT_LBUTTONDOWN:
while True:
ret_val, img = cam.read()
if mirror:
img = cv2.flip(img, 1)
cv2.imshow('Grabacion de Audiencias', img)
out.write(img)
if cv2.waitKey(1) == 27:
break # esc to quit
elif event == cv2.EVENT_RBUTTONDOWN:
pass
cam.release()
out.release()
cv2.destroyAllWindows()
Я жду вашей помощи, потому что это проект, и ничего не достигнуто
Мне удалось использовать клавиатуру для приостановки видео и продолжения записи, в дополнение к информированию пользователя визуальными подсказками, но мне не удалось создать эти действия с помощью бонусов, используя gtk, чтобы конечный пользователь мог запись без проблем. помощь
import cv2
import numpy as np
from datetime import datetime
import gtk
import keyboard
flagrecord=True
def show_webcam(flagrecord):
cam = cv2.VideoCapture(0)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
frame_width = int(cam.get(3))
frame_height = int(cam.get(4))
FONT = cv2.FONT_HERSHEY_PLAIN
filename = datetime.now().strftime("%Y-%m-%d_%H.%M.%S") + ".avi"
out = cv2.VideoWriter(filename,fourcc, 30, (frame_width,frame_height))
while True:
ret_val, img = cam.read()
title = datetime.now().strftime("%Y-%m-%d*%H:%M:%S")
if flagrecord:
img = cv2.flip(img,1)
cv2.putText(img, "REC", (40,40), FONT, 3 , (0,0,255), 2)
cv2.circle(img, (20,20), 10 , (0,0,255), -1)
cv2.rectangle(img, (30,430),(600,480),(0,0,0), -1)
cv2.putText(img, title, (40,470), FONT, 3 , (255,255,255), 2)
cv2.imshow('Grabacion de Audiencias', img)
out.write(img)
else:
img = cv2.flip(img,1)
cv2.putText(img, "PAUSE", (40,40), FONT, 3 , (255,0,0), 2)
cv2.circle(img, (20,20), 10 , (255,0,0), -1)
cv2.rectangle(img, (50,430),(570,480),(0,0,0), -1)
cv2.putText(img, "Audiencias En Pausa", (60,470), FONT, 3 , (255,255,255), 2)
cv2.imshow('Grabacion de Audiencias', img)
if cv2.waitKey(1) == 27:
break
if keyboard.is_pressed('p'):
flagrecord=False
if keyboard.is_pressed('c'):
flagrecord=True
if keyboard.is_pressed('q'):
break
cam.release()
out.release()
cv2.destroyAllWindows()
def main():
show_webcam(mirror=True)
if __name__ == '__main__':
main()