Python-OpenCV 处理视频(二): 视频处理
0x00. 使用 Canny 算法边缘识别
Canny 算法是一种多级边缘识别算法。
Canny边缘识别算法可以分为以下5个步骤:
应用高斯滤波来平滑图像,目的是去除噪声。
找寻图像的强度梯度(intensity gradients)。
应用非最大抑制(non-maximum suppression)技术来消除边误检(本来不是但检测出来是)。
应用双阈值的方法来决定可能的(潜在的)边界。
利用滞后技术来跟踪边界。
具体原理性质的东西可以参考这里
读取本地视频处理代码示例:
import cv2.cv as cvcapture = cv.CaptureFromFile('img/myvideo.avi')nbFrames = int(cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_COUNT))
fps = cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FPS)
wait = int(1/fps * 1000/1)dst = cv.CreateImage((int(cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_WIDTH)),int(cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_HEIGHT))), 8, 1)for f in xrange( nbFrames ):frame = cv.QueryFrame(capture)cv.CvtColor(frame, dst, cv.CV_BGR2GRAY)cv.Canny(dst, dst, 125, 350)cv.Threshold(dst, dst, 128, 255, cv.CV_THRESH_BINARY_INV)cv.ShowImage("The Video", frame)cv.ShowImage("The Dst", dst)cv.WaitKey(wait)
直接处理摄像头视频:
import cv2.cv as cvcapture = cv.CaptureFromCAM(0)dst = cv.CreateImage((int(cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_WIDTH)),int(cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_HEIGHT))), 8, 1)while True:frame = cv.QueryFrame(capture)cv.CvtColor(frame, dst, cv.CV_BGR2GRAY)cv.Canny(dst, dst, 125, 350)cv.Threshold(dst, dst, 128, 255, cv.CV_THRESH_BINARY_INV)cv.ShowImage("The Video", frame)cv.ShowImage("The Dst", dst)c = cv.WaitKey(1)if c == 27: #Esc on Windowsbreak
0x01. 人脸识别
使用OpenCV可以很简单的检测出视频中的人脸等:
import cv2.cv as cvcapture=cv.CaptureFromCAM(0)hc = cv.Load("haarcascades/haarcascade_frontalface_alt.xml")while True:
frame=cv.QueryFrame(capture)
faces = cv.HaarDetectObjects(frame, hc, cv.CreateMemStorage(), 1.2,2, cv.CV_HAAR_DO_CANNY_PRUNING, (0,0) )for ((x,y,w,h),stub) in faces:cv.Rectangle(frame,(int(x),int(y)),(int(x)+w,int(y)+h),(0,255,0),2,0)cv.ShowImage("Window",frame)c=cv.WaitKey(1)if c==27 or c == 1048603: #If Esc enteredbreak
Python-OpenCV 处理视频(二): 视频处理相关推荐
- Python Opencv 之 简单的视频裁剪功能的实现
Python Opencv 之 简单的视频裁剪功能的实现 目录 Python Opencv 之 简单的视频裁剪功能的实现 一.简单介绍 二.实现原理 三.注意实现 四.效果预览 五.实现步骤 这里实现 ...
- opencv自动裁切_荐Python Opencv 之 简单的视频裁剪功能的实现
Python Opencv 之 简单的视频裁剪功能的实现 目录 一.简单介绍 Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随 ...
- python+OpenCV笔记(二十四):Shi-Tomasi角点检测
Shi-Tomasi角点检测 原理 python+OpenCV笔记(二十二):角点检测原理(Harris角点检测原理.Shi-Tomasi角点检测原理)https://blog.csdn.net/qq ...
- python opencv设置不同的视频编解码器参数
环境:opencv 3.4.0 python 3.5.2读取视频 #环境:opencv 3.4.0 python 3.5.2#读取视频import cv2cap = cv2.VideoCapture( ...
- python opencv 条形码及二维码检测识别
目录 条形码检测识别 二维码检测识别 基于python opencv pyzbar 实现. 条形码检测识别 原图: 最后截取图: 直接上代码: import cv2 import numpy as n ...
- python opencv如何读取本地视频并显示 cv2.VideoCapture()
import cv2cap = cv2.VideoCapture('Video_2020-01-06_101858.wmv')while cap.isOpened():ret, frame = cap ...
- python + opencv: 解决不能读取视频的问题
博主一开始使用python2.7和Opencv2.4.10来获取摄像头图像,程序如下: cap = cv2.VideoCapture(0) ret, frame = cap.read() 使用这个程序 ...
- python OpenCV 按时间间隔截取视频中任意片段帧
通过视频制作相应的数据集,截取视频中的任意片段帧. 使用python截取视频中的任意片段帧,直接上代码: import cv2 import os# 定义视频文件路径和保存图像文件路径 video_p ...
- Python opencv学习-2读取视频,存视频,设置视频大小
test2:各种通道读取视频(摄像头.url.视频文件),存视频,设置视频大小等 import numpy as np import cv2# 视频来源为摄像头 cap = cv2.VideoCapt ...
- [python + opencv]根据图像创建视频
做项目的时候,对每一帧的图像进行检测,检测之后输出图片,然后将输出的图片合并成视频. 1. 使用glob获取所有图像文件名称 2. 使用cv2.imread()读取所有图像 3.将所有图像存储到一个列 ...
最新文章
- Linux exec与重定向
- pxe+kickstart实现无人值守网络安装rhel5.4
- 施密特出售Google股票套现3.27亿美元
- 用ConfigParser模块读写conf配置文件
- 银行存取款系统的设计与实现c语言,【银行|银行存取款管理系统设计】取款|管理|系统|设计-傻大方...
- 我的世界梦之边缘5服务器在维护吗,8月5日服务器例行维护公告(已完成)
- python企业级框架_Python六大开源框架对比:Web2py略胜一筹(转)
- java存款输入密码类,创建一个银行账户类,包括账号、用户姓名、密码和余额属性,实现开户、查询余额、取款、存款功能。...
- 95-30-070-java.util-LinkedList
- python软件下载安装-python安装最新下载_python安装绿色版 - 软件帝
- LINUX清理垃圾桶提示“没有权限”或“目录非空”
- 第九期 HG255d硬件分析 《路由器就是开发板》
- 陈春花:创造价值 做好产品
- Python实现excel重复值计数/记录小白第一次学习
- oracle loop面试题,oracle存储过程面试题
- css3中transition过渡和animation动画的区别
- c# ListBox控件
- 元宇宙的运行之“DAO”:在元宇宙中创作、分享,付出的劳动如何获得回报?...
- Flip Flop和DoOnce
- 杭电信工计算机专业浙江省排名第几,2017杭州电子科技大学专业排名_杭州电子科技大学专业排行榜(2)...