我们先来理解一下什么是GUI特性;一起来学习摘自百度词条的信息:
图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。
图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。与通过键盘输入文本或字符命令来完成例行任务的字符界面相比,图形用户界面有许多优点。图形用户界面由窗口、下拉菜单、对话框及其相应的控制机制构成,在各种新式应用程序中都是标准化的,即相同的操作总是以同样的方式来完成,在图形用户界面,用户看到和操作的都是图形对象,应用的是计算机图形学的技术。
这样来说,在以往的计算机显示界面中,都是信息的展示,也就是说展示出来的界面不是像现在这样的图形化,对于创作者来说减轻了工作的负担,但却加大了使用者对其的理解。所以,为了让计算机界面更加人性化,程序员是有必要学习GUI特性。
target
学习读取视频,显示视频和保存视频。
学习从相机捕捉并显示它。
摄像头打开视频
在我平时做项目的时候常会用到摄像头,实时捕获画面,常用的就有网络摄像头,USB接口的外部摄像头,这时候需要用到一个VideoCapture对象,传入参数0,则是网络摄像头;传入参数1,则是连接外部摄像头,它的原理是逐帧捕获,每一帧都是一个图片,所以我们需要用到循环。最后要释放“俘虏”。
import numpy as np
import cv2 as cv
cap = cv.VideoCapture(0)
if not cap.isOpened():
print("Cannot open camera")
exit()
while True:
# 逐帧捕获
ret, frame = cap.read()
# ret用来接收布尔值,成功则会得到True
if not ret:
print("Can't receive frame (stream end?). Exiting ...")
break
# 我们在框架上的操作到这里
gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
# 显示结果帧
cv.imshow('frame', gray)
if cv.waitKey(1) == 27:
break
# 最后要释放捕获器
cap.release()
cv.destroyAllWindows()
你还可以使用cap.get(propId)方法访问该视频的某些功能,其中propId表示0-18之间的一个数字,每个数字表示视频的属性,这其中一些值可采用cap.set(propId,value)进行修改。
文件打开视频
这个与上面相同,我们将文件的路径传入当中,在显示框架时,请使用适当的时间cv.waitKey().如果太小,视频将会非常快,而如果太大,则视频将变得很慢。正常请况下25毫秒就可以了。
保存视频
这个地方,我从前没有用过,实际的情况下用的也较少,如果视频较短,我建议用QQ录屏,Ctrl+Alt+s。当然也是有方法保存的,你可以去手册中查找,由于我不是很了解这方面,我就不说了。