博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用Farnback光流算法将视频序列生成光流并输出
阅读量:6815 次
发布时间:2019-06-26

本文共 2294 字,大约阅读时间需要 7 分钟。

hot3.png

 利用Farnback光流算法将视频序列生成光流并输出def preprocessing():    print("开始获取数据...")    # clips_directory = gb.glob(os.path.join(datasetTestDir, "*"))  # 训练集    clips_directory = gb.glob(os.path.join(datasetTestDir, "Test???"))  # 测试集光流生成算法    # 遍历所有数据集中的clip片段    for dir in clips_directory:        curClip = dir.split('\\')[-1]        print(curClip)        img_path = gb.glob(os.path.join(dir, '*.tif'))        prvs = cv2.cvtColor(cv2.imread(img_path[0]), cv2.COLOR_BGR2GRAY)        hsv = np.zeros_like(cv2.imread(img_path[0]))        hsv[..., 1] = 255        for i, curFrame in enumerate(img_path):            print("curFrame: ", curFrame)            img = cv2.imread(curFrame)            next = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)            flow = cv2.calcOpticalFlowFarneback(prvs, next, None, 0.5, 3, 15, 3, 5, 1.2, 0)            mag, ang = cv2.cartToPolar(flow[..., 0], flow[..., 1])            hsv[..., 0] = ang * 180 / np.pi / 2            hsv[..., 2] = cv2.normalize(mag, None, 0, 255, cv2.NORM_MINMAX)            rgb = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)            # font = cv2.FONT_HERSHEY_SIMPLEX  # 使用默认字体            # cv2.putText(img, str(i+1), (0, 20), font, 0.8, (255, 255, 255), 1)  # #添加文字,1.2表示字体大小,(0,40)是初始的位置,(255,255,255)表示颜色,2表示粗细            # cv2.putText(rgb, str(i+1), (0, 20), font, 0.8, (255, 255, 255), 1)  # #添加文字,1.2表示字体大小,(0,40)是初始的位置,(255,255,255)表示颜色,2表示粗细            cv2.namedWindow("rawImageFrame", 0)            cv2.namedWindow("opticalFlowImageFrame", 1)            cv2.resizeWindow("rawImageFrame", 360, 240)            cv2.resizeWindow("opticalFlowImageFrame", 360, 240)            cv2.imshow('rawImageFrame', img)            cv2.imshow('opticalFlowImageFrame', rgb)            # 将 opticalflow 图像写入相关文档            saveFolder = os.path.join(opticalflowTestDir, curClip)            if not os.path.exists(saveFolder):                os.makedirs(saveFolder)            cv2.imwrite(saveFolder + "\\" + str(i+1) + '.tif', rgb)            k = cv2.waitKey(30) & 0xff            if k == 27:                break            elif k == ord('s'):                cv2.imwrite('opticalfb.png', img)                cv2.imwrite('opticalhsv.png', rgb)            prvs = next        cv2.destroyAllWindows()

利用Farnback光流算法将视频序列生成光流并输出

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/u/3702502/blog/2051163

你可能感兴趣的文章
【转】Automated Testing and the Test Pyramid
查看>>
[转] Mac下MySql卸载方法
查看>>
浙大版《C语言程序设计(第3版)》题目集 练习4-6 猜数字游戏 (15 分)
查看>>
ORA-00845: MEMORY_TARGET not supported on this system
查看>>
HashTable原理与源码分析
查看>>
JPA多对一单向关联
查看>>
系统查看硬件相关信息命令
查看>>
sublime 3 text 中运行Java
查看>>
前序遍历
查看>>
loadrunner检查点设置失败,日志中SaveCount无法被正常统计出来
查看>>
循环结构进阶
查看>>
bzoj 2809: [Apio2012]dispatching
查看>>
关于数据库查询时报“query block has incorrect number of result columns”
查看>>
记录一款Unity VR视频播放器插件的开发
查看>>
webApi跨域问题
查看>>
读取文件
查看>>
小 X 与数字(ten)
查看>>
json字符串转换对象的方法1
查看>>
Spring Boot:简介
查看>>
C# 超时工具类 第二版
查看>>