传统网站和手机网站的区别是什么,做字网站,太原云起时网站建设,wordpress 改登录界面本次要学视频检测#xff0c;我们先回顾一下图片的人脸检测建筑兔零基础自学python记录16|实战人脸识别项目——人脸检测05-CSDN博客 我们先把上文中代码复制出来#xff0c;保留红框的部分。
然后我们来看一下源代码#xff1a; import cv2 as cvdef face_detect_demo(… 本次要学视频检测我们先回顾一下图片的人脸检测建筑兔零基础自学python记录16|实战人脸识别项目——人脸检测05-CSDN博客 我们先把上文中代码复制出来保留红框的部分。
然后我们来看一下源代码 import cv2 as cvdef face_detect_demo(img):gary cv.cvtColor(img,cv.COLOR_BGR2GRAY)face_detect cv.CascadeClassifier(M:/python/pythoninstall/Lib/site-packages/cv2/data/haarcascade_frontalface_alt.xml)face face_detect.detectMultiScale(gary)for x,y,w,h in face:cv.rectangle(img,(x,y),(xw,yh),color(0,0,255),thickness2)cv.imshow(result,img)#读取摄像头
cap cv.VideoCapture(0)
#循环
while True:flag,frame cap.read()if not flag:breakface_detect_demo(frame)if ord(q) cv.waitKey(1):breakcv.destroyAllWindows()#释放摄像头
cap.release() 依次进行解读
1cv.VideoCapture() 可以接受一个参数用于指定视频源
整数类型表示摄像头设备的编号从 0 开始。例如cv.VideoCapture(0) 表示打开默认的摄像头。字符串类型表示本地视频文件的路径或网络视频流的 URL。例如cv.VideoCapture(video.mp4) 表示打开名为 video.mp4 的本地视频文件。 #举例
#1导入视频路径
cap cv.VideoCapture(http://example.com/stream.m3u8)
cap cv.VideoCapture(path/to/your/video.mp4)
#2导入摄像头
cv.VideoCapture(0)2flag,framecap.read() 从指定的视频源可以是摄像头、本地视频文件或者网络视频流中读取一帧图像。 每次调用时它会尝试从视频源中获取当前的视频帧并将其作为一个图像对象返回。
该方法返回两个值通过元组解包的方式分别赋值给 flag 和 frame
flag一个布尔类型的值用于指示是否成功读取到视频帧。 如果成功读取到帧flag 的值为 True 如果失败例如视频结束、视频源断开连接等情况flag 的值为 False。
frame一个 NumPy 数组表示读取到的视频帧图像。 该数组的形状通常为 (高度, 宽度, 通道数)通道数一般为 3代表 RGB 三个颜色通道图像的像素值范围通常是 0 到 255。
补充在这里我们会发现flag,frame两个值不是写在括号里的反而是在之前的。这和我们之前熟悉的cv.cvtColor(img,cv.COLOR_BGR2GRAY)这样括号里的写法有什么区别呢
括号里的值x,例如数学里见过的sin(x)。 所以 cv.cvtColor(img,cv.COLOR_BGR2GRAY)中我们可理解为 x1img,x2cv.COLOR_BGR2GRAY
等于号左边的值y,例如数学里见过的ysin(x) 所以flag,framecap.read()我们可理解为
y1flag,y2frame 3解读循环代码
#本次视频识别代码
while True:flag,frame cap.read()if not flag:breakface_detect_demo(frame)if ord(q) cv.waitKey(1):break#对比之前图像识别代码
while True:if ord(q) cv.waitKey(0):break 对比之后可以看到增加的代码主要是关于flag和frame的其中flag读帧与否frame:帧。这一段代码其实执行了两个循环命令即下图中的蓝框和红框。 由此可以看到两个循环 1.持续读帧 2.对帧检测人脸 在这段循环中还有两个调用,如下图 1.调用摄像头 2.调用人脸识别参数 综上我们可以对整个代码有了整体的结构掌握 让我们打开屏幕摄像头试试~ 可以看到已经可以识别屏幕中手机中的人脸照片了并且随着移动可以动态识别。 接着我们尝试导入一段视频试一下~
首先获取一段视频然后保存到py的workspace 将路径输入代码运行即可。 可以看到成功识别了节目中的人物~可以点击视频进行观看~ 人脸识别测试 4总结
cv.VideoCapture()视频路径
flag,framecap.read()读取视频flag读帧与否frame:帧