Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python OpenCV上的全屏视频_Python_Opencv_Fullscreen - Fatal编程技术网

Python OpenCV上的全屏视频

Python OpenCV上的全屏视频,python,opencv,fullscreen,Python,Opencv,Fullscreen,------编辑----------------- 我简化了我的原始查询,因为大多数人都不理解 ------编辑----------------- 您好,我想使用OpenCV全屏显示视频,但不确定如何显示。这是我到目前为止的代码,是的,我是一个新手,但你必须从某个地方开始。我正在运行Python 3.6.3 问题:如何使用OpenCV全屏显示视频 import cv2 import numpy as np import os os.environ['SDL_VIDEO_CENTERED'] =

------编辑-----------------

我简化了我的原始查询,因为大多数人都不理解

------编辑-----------------

您好,我想使用OpenCV全屏显示视频,但不确定如何显示。这是我到目前为止的代码,是的,我是一个新手,但你必须从某个地方开始。我正在运行Python 3.6.3

问题:如何使用OpenCV全屏显示视频

import cv2
import numpy as np
import os
os.environ['SDL_VIDEO_CENTERED'] = '1'
cap = cv2.VideoCapture("video.mp4")
cv2.namedWindow("window", cv2.WND_PROP_FULLSCREEN)
cv2.setWindowProperty("video.mp4",cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN)
while(cap.isOpened()):
  ret, frame = cap.read()
  if ret == True:
    cv2.imshow('Frame',frame)
    if cv2.waitKey(30) & 0xFF == ord('q'):
      break
  else:
    break
cap.release()
cv2.destroyAllWindows()
我也得到了这个错误

回溯(最近一次呼叫最后一次): 文件“C:/Users/A/Desktop/vid.py”,第7行,在 cv2.setWindowProperty(“video.mp4”,cv2.WND\u PROP\u全屏,cv2.WINDOW\u全屏) cv2.error:C:\projects\opencv python\opencv\modules\highgui\src\window\u w32.cpp:443:error:(-27)函数cvSetModeWindow\u w32中的空窗口


我不明白你的问题,但如果你想打开摄像机,你可以尝试以下代码:

import numpy as np
import cv2

cap = cv2.VideoCapture(0)

# Define the codec and create VideoWriter object
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))

while(cap.isOpened()):
    ret, frame = cap.read()
    if ret:
        gray = cv2.cvtColor(src=frame, code=cv2.COLOR_BGR2GRAY)

        out.write(gray)

        cv2.imshow('frame', gray)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

感谢Dan Masek,我最初的问题的答案是:

import cv2
import numpy as np

file_name = "video location here"
window_name = "window"
interframe_wait_ms = 30

cap = cv2.VideoCapture(file_name)
if not cap.isOpened():
    print("Error: Could not open video.")
    exit()

cv2.namedWindow(window_name, cv2.WND_PROP_FULLSCREEN)
cv2.setWindowProperty(window_name, cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)

while (True):
    ret, frame = cap.read()
    if not ret:
        print("Reached end of video, exiting.")
        break

    cv2.imshow(window_name, frame)
    if cv2.waitKey(interframe_wait_ms) & 0x7F == ord('q'):
        print("Exit requested.")
        break

cap.release()
cv2.destroyAllWindows()

第1章释放()
cv2.destroyAllWindows()

至于第一个问题,当你感到沮丧时,点击其他问题(头靠墙是一个流行的选择)。至于错误,请注意,要修改的第一个参数是“窗口的名称”。现在,在前面的语句中,您创建了一个名为
“window”
,但在这里您使用了另一个名称--
“video.mp4”
。此外,您还可以使用另一个窗口名--
“Frame”
,进一步使用
cv2.imshow
。该名称用于区分多个窗口!“显示30秒”是什么意思?参数是以毫秒为单位的延迟。。。在这里工作(我做了一些简化),但请澄清以上,它可以被解释为至少3种不同的方式…不幸的是,你是一个完全和彻底的新手处理。我最近才开始接触编程。我认为
cv2.waitKey
实际上是每秒帧数,因为当我降低该值时,视频播放速度会变慢。至于您的代码,它似乎不起作用,因为在运行时没有弹出任何内容。顺便说一下,我正在运行Python3.6.3。谢谢你,丹,这很有魅力!友好提示:一般来说,如果你不理解一个问题,最好是要求澄清,而不是仅仅根据猜测给出答案。使用评论、向下投票(“这个问题没有显示任何研究成果;它不清楚或没有用处”)或根据严重程度标记为“应该关闭…不清楚你在问什么”。嗨,对不起,我应该把自己说得更清楚。我更新了我原来的帖子,让它包含有用的信息。至于你的代码,它不适用于我的需要。它可以工作,但它只输入网络摄像头视频,而不是实际的mp4文件。
while(cap.isOpened()):
   ret, frame = cap.read()
   if ret == True:
        cv2.namedWindow("window", cv2.WND_PROP_FULLSCREEN)
        cv2.setWindowProperty("window",cv2.WND_PROP_FULLSCREEN,
               cv2.WINDOW_FULLSCREEN)
        cv2.imshow('window',frame)
        if cv2.waitKey(30) & 0xFF == ord('q'):
            break
    else:
         break