Python使用NiceGUI实现电脑摄像头画布监控
在网上看到一个日本 的文章有物是nicegui却监控电脑摄像头的画布
那个文章看起来有点意思,看了一下这个简要的技术介绍觉得有点意思。如果有外接摄像头估计 也就变成 了一个视频监控功能了。当然性能怎么样有等观察,醒醒上可以使用了
Python中对血斧视频的处理通常会用到 cv2
安装cv2可以找opencv这个package建议使用国内源去安装不然会经常出现无法下载 安装的情况
如何获取摄像头
import cv2
from nicegui import ui
video_capture = cv2.VideoCapture(0)
1、cv2.VideoCapture()函数:
cap = cv2.VideoCapture(0)
VideoCapture()中参数是0,表示打开笔记本的内置摄像头。
cap = cv2.VideoCapture("…/1.avi")
VideoCapture("…/1.avi"),表示参数是视频文件路径则打开视频。
视频的基本原理
简单理解视频 其实就是很多静态图像以一定的速度播放,这样就变成了动画的视频
百度百科上的解释,视频(Video)是泛指将一系列静态影像以电信号的方式加以捕捉、记录、处理、储存、传送与重现的各种技术。我们知道根据视觉暂留原理,当连续的图像变化每秒超过24帧(frame)画面以上时,人眼就会无法辨别出单幅的静态画面。所以看上去会产生平滑连续的视觉效果,这样连续的画面叫做视频。想必大家小时候都玩过各式各样的手翻书,它便是最早的动画模式,即是利用视觉暂留原理制成的“不插电”的动画。
摄像头获取的也是很多图片
我们只需要把图片展示出来即可。
global video_capture, ui_interactive_image
ret, frame = video_capture.read()
if ret and ui_interactive_image is not None:
_, imencode_image = cv2.imencode('.jpg', frame)
base64_image = base64.b64encode(imencode_image)
base64_image_string = 'data:image/jpg;base64,' + base64_image.decode(
'ascii')
ui_interactive_image.source = base64_image_string
_, imencode_image = cv2.imencode('.jpg', frame) 获取摄像头的数据变成 了个图片
使用nicegui的图片退件去显示摄像头的图片
ui_interactive_image = ui.interactive_image()