Так что мой код работает отлично, только один раз. Я хочу, чтобы видео запускалось на втором мониторе (в настоящее время удален из кода), в то время как основной монитор запускает приложение в полноэкранном режиме. Проблема в том, что когда видео opencv открывается, оно минимизирует приложение основного экрана. Я попробовал cv, namedWindow и изменил размеры без удачи. Есть предложения?
Просто нужно приложение основного монитора, чтобы оно оставалось полноэкранным, пока видео воспроизводится на дополнительном. Сводит меня с ума.
Спасибо
import os
from os import path
import glob
import numpy as np
import cv2
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class Watcher:
DIRECTORY_TO_WATCH = 'PATH'
def __init__(self):
self.observer = Observer()
def run(self):
event_handler = Handler()
self.observer.schedule(event_handler, self.DIRECTORY_TO_WATCH, recursive=True)
self.observer.start()
try:
while True:
except:
self.observer.stop()
self.observer.join()
class Handler(FileSystemEventHandler):
@staticmethod
def on_any_event(event):
if event.is_directory:
return None
elif event.event_type == 'created':
os.chdir("PATH")
newest = max(glob.glob("PATH/*.mp4"), key=os.path.getctime)
cap = cv2.VideoCapture(newest)
cap.set(1,1420);
def rescale_frame(frame, percent=25):
width = int(frame.shape[1] * percent/ 100)
height = int(frame.shape[0] * percent/ 100)
dim = (width, height)
return cv2.resize(frame, dim, interpolation =cv2.INTER_AREA)
while True:
ret ,frame = cap.read()
if type(frame) == type(None):
break
frame25 = rescale_frame(frame, percent=25)
cv2.namedWindow('frame25',cv2.WINDOW_NORMAL)
cv2.imshow('frame25',frame25)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
if __name__ == '__main__':
w = Watcher()
w.run()