视频的画框和保存

Posted czz0508

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了视频的画框和保存相关的知识,希望对你有一定的参考价值。

这是来自一段动态物体检测的代码,首先将动态物体检测出来并画框,然后将画框的图片以视频的形式保存下来。

import cv2
import numpy as np

camera = cv2.VideoCapture("F:/7.mp4")

# 判断视频是否打开
if (camera.isOpened()):
    print(Open)
else:
    print(摄像头未打开)

# 测试用,查看视频size
size = (int(camera.get(cv2.CAP_PROP_FRAME_WIDTH)),
        int(camera.get(cv2.CAP_PROP_FRAME_HEIGHT)))
print(size:+repr(size))
 
es = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (9, 4))
kernel = np.ones((5, 5), np.uint8)
background = None
a = 0
b = 0

fourcc = cv2.VideoWriter_fourcc(M, P, 4, 2)
out = cv2.VideoWriter(F:\output0.avi,fourcc, 20.0, (1280,720))
while True:
    # 读取视频流
    grabbed, frame_lwpCV = camera.read()

    if frame_lwpCV is None:
        break
    gray_lwpCV = cv2.cvtColor(frame_lwpCV, cv2.COLOR_BGR2GRAY)

    gray_lwpCV = cv2.GaussianBlur(gray_lwpCV, (21, 21), 0)
 
    # 将第一帧设置为整个输入的背景
    if background is None:
        background = gray_lwpCV 
        continue

    diff = cv2.absdiff(gray_lwpCV, background)
    background = gray_lwpCV

    diff = cv2.threshold(diff, 9, 255, cv2.THRESH_BINARY)[1]
    diff = cv2.dilate(diff, es, iterations=2) # 形态学膨胀

    # 显示矩形框
     # 该函数计算一幅图像中目标的轮廓
    image, contours, hierarchy = cv2.findContours(diff.copy(), 
                                                  cv2.RETR_EXTERNAL, 
                                                  cv2.CHAIN_APPROX_SIMPLE)    
    aaa = 0
    for c in contours:
        aaa += 1
        if cv2.contourArea(c) < 2000: # 对于矩形区域,只显示大于给定阈值的轮廓
            continue

        (x, y, w, h) = cv2.boundingRect(c) # 该函数计算矩形的边界框
        #print(x, y, w, h)
        cv2.rectangle(frame_lwpCV, (x, y), (x+w, y+h), (0, 255, 0), 2)

    out.write(frame_lwpCV)
    cv2.imshow(contours, frame_lwpCV)
    cv2.imshow(dis, diff)
 
    key = cv2.waitKey(1) & 0xFF
    # 按‘q‘健退出循环
    if key == ord(q):
        break

camera.release()
cv2.destroyAllWindows()

 

以上是关于视频的画框和保存的主要内容,如果未能解决你的问题,请参考以下文章

python目标检测给图画框,bbox画到图上并保存

如何把视频片段做成动态图片

尝试修改LabelImg,将以对顶角画框改成以对角线相交点向四周画框

MATLAB中如何在图片中手动画框

vue保存的视频怎么删 vue保存的视频如何删

sublimetext3中保存代码片段