0x00. 使用 Canny 算法边缘识别

Canny 算法是一种多级边缘识别算法。

Canny边缘识别算法可以分为以下5个步骤:

  1. 应用高斯滤波来平滑图像,目的是去除噪声。

  2. 找寻图像的强度梯度(intensity gradients)。

  3. 应用非最大抑制(non-maximum suppression)技术来消除边误检(本来不是但检测出来是)。

  4. 应用双阈值的方法来决定可能的(潜在的)边界。

  5. 利用滞后技术来跟踪边界。

具体原理性质的东西可以参考这里

读取本地视频处理代码示例:

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 处理视频(二): 视频处理相关推荐

  1. Python Opencv 之 简单的视频裁剪功能的实现

    Python Opencv 之 简单的视频裁剪功能的实现 目录 Python Opencv 之 简单的视频裁剪功能的实现 一.简单介绍 二.实现原理 三.注意实现 四.效果预览 五.实现步骤 这里实现 ...

  2. opencv自动裁切_荐Python Opencv 之 简单的视频裁剪功能的实现

    Python Opencv 之 简单的视频裁剪功能的实现 目录 一.简单介绍 Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随 ...

  3. python+OpenCV笔记(二十四):Shi-Tomasi角点检测

    Shi-Tomasi角点检测 原理 python+OpenCV笔记(二十二):角点检测原理(Harris角点检测原理.Shi-Tomasi角点检测原理)https://blog.csdn.net/qq ...

  4. python opencv设置不同的视频编解码器参数

    环境:opencv 3.4.0 python 3.5.2读取视频 #环境:opencv 3.4.0 python 3.5.2#读取视频import cv2cap = cv2.VideoCapture( ...

  5. python opencv 条形码及二维码检测识别

    目录 条形码检测识别 二维码检测识别 基于python opencv pyzbar 实现. 条形码检测识别 原图: 最后截取图: 直接上代码: import cv2 import numpy as n ...

  6. python opencv如何读取本地视频并显示 cv2.VideoCapture()

    import cv2cap = cv2.VideoCapture('Video_2020-01-06_101858.wmv')while cap.isOpened():ret, frame = cap ...

  7. python + opencv: 解决不能读取视频的问题

    博主一开始使用python2.7和Opencv2.4.10来获取摄像头图像,程序如下: cap = cv2.VideoCapture(0) ret, frame = cap.read() 使用这个程序 ...

  8. python OpenCV 按时间间隔截取视频中任意片段帧

    通过视频制作相应的数据集,截取视频中的任意片段帧. 使用python截取视频中的任意片段帧,直接上代码: import cv2 import os# 定义视频文件路径和保存图像文件路径 video_p ...

  9. Python opencv学习-2读取视频,存视频,设置视频大小

    test2:各种通道读取视频(摄像头.url.视频文件),存视频,设置视频大小等 import numpy as np import cv2# 视频来源为摄像头 cap = cv2.VideoCapt ...

  10. [python + opencv]根据图像创建视频

    做项目的时候,对每一帧的图像进行检测,检测之后输出图片,然后将输出的图片合并成视频. 1. 使用glob获取所有图像文件名称 2. 使用cv2.imread()读取所有图像 3.将所有图像存储到一个列 ...

最新文章

  1. Linux exec与重定向
  2. pxe+kickstart实现无人值守网络安装rhel5.4
  3. 施密特出售Google股票套现3.27亿美元
  4. 用ConfigParser模块读写conf配置文件
  5. 银行存取款系统的设计与实现c语言,【银行|银行存取款管理系统设计】取款|管理|系统|设计-傻大方...
  6. 我的世界梦之边缘5服务器在维护吗,8月5日服务器例行维护公告(已完成)
  7. python企业级框架_Python六大开源框架对比:Web2py略胜一筹(转)
  8. java存款输入密码类,创建一个银行账户类,包括账号、用户姓名、密码和余额属性,实现开户、查询余额、取款、存款功能。...
  9. 95-30-070-java.util-LinkedList
  10. python软件下载安装-python安装最新下载_python安装绿色版 - 软件帝
  11. LINUX清理垃圾桶提示“没有权限”或“目录非空”
  12. 第九期 HG255d硬件分析 《路由器就是开发板》
  13. 陈春花:创造价值 做好产品
  14. Python实现excel重复值计数/记录小白第一次学习
  15. oracle loop面试题,oracle存储过程面试题
  16. css3中transition过渡和animation动画的区别
  17. c# ListBox控件
  18. 元宇宙的运行之“DAO”:在元宇宙中创作、分享,付出的劳动如何获得回报?...
  19. Flip Flop和DoOnce
  20. 杭电信工计算机专业浙江省排名第几,2017杭州电子科技大学专业排名_杭州电子科技大学专业排行榜(2)...

热门文章

  1. Lambda架构在有赞广告平台的应用与演进
  2. 项目中遇到的Integer问题--转
  3. 云宇宙iwemeta: 亚马逊全面进军元宇宙
  4. 腾讯内部人士爆与老干妈合作多个环节有漏洞 却没人察觉
  5. on条件与where条件的区别
  6. 海外投行抢滩大数据 人工智能等领域趋热
  7. VMware-使用VMware在本地搭建多个CentOS虚机
  8. Spring MVC-08循序渐进之国际化(基于Session-SessionLocaleResolver)
  9. 在 Shell 脚本中跟踪调试命令的执行
  10. Python 命令行参数