资源简介

【内附详细说明文档】 本项目是使用python,利用opencv库实现的共8个视频处理算法,包括:目标跟踪算法Meanshift, Camshift;稀疏光流以及稠密光流的计算OpticalFlow, OpticalFlow_full,前景检测算法MOG, CNT, GMG, GSOC,LSBP 。 代码简洁易读,可做为python课设参考资料,或者供图像处理爱好者学习。

资源截图

代码片段和文件信息

import cv2
import argparse
from Tools import(
    onMouse

from Modules import(
    Meanshift
    OpticalFlow
    OpticalFlow_Full
    BackgroundSubtractor


# 传入参数
parser = argparse.ArgumentParser()
parser.add_argument(‘--module‘ type=int default = 6
            help =  “ 0: Meanshift       1: Camshift    2: OpticalFlow \
                      3: OpticalFlow_full         4: BackgroundSubtractorMOG \
                      5: BackgroundSubtractorCNT       6: BackgroundSubtractorGMG \
                      7: BackgroundSubtractorGSOC   8: BackgroundSubtractorLSBP“ )

parser.add_argument(‘--use_Video‘ default=True action=‘store_true‘)
parser.add_argument(‘--Video_path‘ type=str default = “D:\\Downloads\\BackgroundSplit-OpenCV-master\\BackgroundSplit-OpenCV-master\\Video\\Camera Road 01.avi“)
args = parser.parse_args()

if __name__==‘__main__‘:
    if not args.use_Video:
        cap = cv2.VideoCapture(0)
    else:
        cap = cv2.VideoCapture(args.Video_path)

    if not cap.isOpened():
        print(“ERROR: Did‘t find this video!“)
        exit(1)

    if args.module == 0 or args.module == 1:
        # 物体跟踪需要进行窗口鼠标监视
        cv2.namedWindow(‘imshow‘)
        cv2.setMouseCallback(‘imshow‘ onMouse)
        if args.module == 1:
            is_camshift = True
        else:
            is_camshift = False
        trackModule = Meanshift(cap is_camshift)
        trackModule.run()

    elif args.module == 2:
        # 特征点参数
        feature_params = dict(maxCorners=100
                        qualityLevel=0.1
                        minDistance=5
                        blockSize=7)
        # 光流参数
        lk_params = dict(winSize=(11 11)
                     maxLevel=2
                     criteria=(cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT 10 0.03))
        of = OpticalFlow(cap feature_params lk_params)
        of.run()

    elif args.module == 3:
        # 稠密光流参数
        lk_params = dict(pyr_scale = 0.3
                    levels = 4 winsize = 6
                    iterations = 3 poly_n = 5
                    poly_sigma = 1.2 flags = 0)
        of_full = OpticalFlow_Full(cap lk_params)
        of_full.run()

    elif 4 <= args.module <= 8:
        # 前景检测算法
        mog = BackgroundSubtractor(cap args.module)
        mog.run()

    else:
        print(“module index error!“)
        exit(1)




 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2520  2018-12-13 23:58  project\main.py

     文件       6680  2018-12-13 23:38  project\Modules.py

     文件    1419091  2018-12-14 00:02  project\pythonx项目说明文档.docx

     文件       2138  2018-12-13 23:09  project\Tools.py

     目录          0  2019-02-28 15:34  project

----------- ---------  ---------- -----  ----

              1430429                    5


评论

共有 条评论