AI-19第三周进阶作业

AI-19第三周进阶作业

1. 在测试视频(OpenCV安装目录\sources\samples\data)上,使用基于混合高斯模型的背景提取算法,提取前景并显示(显示二值化图像,前景为白色)。

import cv2
# 加载视频
cap = cv2.VideoCapture()
cap.open(r'C:\Users\user\Desktop\vtest.avi')
if not cap.isOpened():
    print("无法打开视频文件")
pBgModel = cv2.createBackgroundSubtractorMOG2()

def labelTargets(img, mask, threshold):
    seg = mask.copy()
    cnts = cv2.findContours(seg, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    count = 0
    for i in cnts[1]:
        area = cv2.contourArea(i)
        if area < threshold:
            continue
        count += 1
        rect = cv2.boundingRect(i)
        print("矩形:X:{} Y:{} 宽:{} 高:{}".format(rect[0], rect[1], rect[2], rect[3]))
        cv2.drawContours(img, [i], -1, (255, 255, 0), 1)
        cv2.rectangle(img, (rect[0], rect[1]), (rect[0] + rect[2], rect[1] + rect[3]), (0, 0, 255), 1)
        cv2.putText(img, str(count), (rect[0], rect[1]), cv2.FONT_HERSHEY_PLAIN, 0.5, (0, 255, 0))
    return count

while True:
    flag, source = cap.read()
    if not flag:
        break
    image = cv2.pyrDown(source)

    fgMask = pBgModel.apply(image)

    kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5))
    morphImage_open = cv2.morphologyEx(fgMask, cv2.MORPH_OPEN, kernel, iterations=5)
    mask = fgMask - morphImage_open
    _, Mask =
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值