php中文网 | cnphp.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 426|回复: 0

基于帧间差分的运动目标检测

[复制链接]

3138

主题

3148

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

UID
1
威望
0
积分
7946
贡献
0
注册时间
2021-4-14
最后登录
2024-11-21
在线时间
763 小时
QQ
发表于 2022-9-9 08:27:53 | 显示全部楼层 |阅读模式
[mw_shl_code=python,true]import cv2
import numpy as np
# 读取图片
baseImg = cv2.imread('./result/BJ2.png')
curImg = cv2.imread('./result/local_X200local_Y80,snr10,Track_height6850000m.png')
def detect(baseimg,curimg):
    tmp3 = curImg.copy()
    # 转灰度图
    gray_base = cv2.cvtColor(baseImg, cv2.COLOR_BGR2GRAY)
    gray_cur = cv2.cvtColor(curImg, cv2.COLOR_BGR2GRAY)
    resImg = cv2.absdiff(gray_cur, gray_base)
    binary,contours, hierarchy = cv2.findContours(resImg, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    area = []
    # 找到最大的轮廓
    for k in range(len(contours)):
        area.append(cv2.contourArea(contours[k]))
    max_idx = np.argmax(np.array(area))
    draw_img3 = cv2.drawContours(curImg.copy(), contours, max_idx, (0, 0, 255), 1)
    cnt = contours[max_idx]
    # 外接图形
    x, y, w, h = cv2.boundingRect(cnt)
    # 直接在图片上进行绘制,所以一般要将原图复制一份,再进行绘制
    res4 = cv2.rectangle(tmp3, (x, y), (x + w, y + h), (0, 0, 255), 2)
    cv2.imshow('rectangle', res4)
    cv2.imshow("resImg ", resImg)
    cv2.imshow("counter ", draw_img3)
    cv2.waitKey(0)
detect(baseImg,curImg)
[/mw_shl_code]

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|php中文网 | cnphp.com ( 赣ICP备2021002321号-2 )

GMT+8, 2024-11-22 01:30 , Processed in 0.984509 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

申明:本站所有资源皆搜集自网络,相关版权归版权持有人所有,如有侵权,请电邮(fiorkn@foxmail.com)告之,本站会尽快删除。

快速回复 返回顶部 返回列表