首页 > 解决方案 > OpenCV 视频 - 开始最小化

问题描述

所以我的代码完美运行只有一个小问题。我希望视频在第二台显示器上运行(目前已从代码中删除),而主显示器则全屏运行应用程序。问题是当 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()

标签: opencvvideominimize

解决方案


推荐阅读