OpenCV笔记(6)(harris角点检测、背景建模)
一、Harris角点

如上图所示,红色框AB都是平面,蓝色框CD都是边缘,而绿色框EF就是角点。
平面:框往X或Y抽移动,变化都很小。
边缘:框沿X或Y轴移动,其中一个变化很小,而另外一个变化比较大。
角点:框沿X或Y轴移动,两个变化都比较大。
见《图像基础》笔记第7页
二、背景建模
使用帧差法:
即用后一帧图像减去前一帧图像,得到运动的物体,但是会出现空洞(前景物体的一个面灰度变化不大,减完得到接近0的数)。
使用GMM方法:
# -*- coding:utf-8 -*-
__author__ = 'Leo.Z' import cv2 as cv # 打开媒体流
cap = cv.VideoCapture('rtsp://admin:bs12345678@171.221.219.92:554/PSIA/streaming/channels/1201')
# 创建一个形态学kernel
kernel = cv.getStructuringElement(cv.MORPH_ELLIPSE, (5, 5))
# 创建MOG2
fgbg = cv.createBackgroundSubtractorMOG2() while (True):
# 读取一帧
ret, frame = cap.read()
# MOG2运用到每一帧
fgmask = fgbg.apply(frame)
# 使用形态学开操作
fgmask = cv.morphologyEx(fgmask, cv.MORPH_OPEN, kernel)
# 找轮廓
contours, hierarchy = cv.findContours(fgmask, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE) for c in contours:
# 计算每个轮廓的周长
perimeter = cv.arcLength(c, True)
# 周长大于188的则用方框框起来
if perimeter > 188:
# 获取轮廓的外接矩形
x, y, w, h = cv.boundingRect(c)
cv.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2) cv.imshow('frame', frame)
cv.imshow('fgmask', fgmask)
k = cv.waitKey(10) & 0xff
if k == 27:
break
# 释放cap
cap.release()
# 关闭所有窗口
cv.destroyAllWindows()
OpenCV笔记(6)(harris角点检测、背景建模)的更多相关文章
- opencv笔记6:角点检测
time:2015年10月09日 星期五 23时11分58秒 # opencv笔记6:角点检测 update:从角点检测,学习图像的特征,这是后续图像跟踪.图像匹配的基础. 角点检测是什么鬼?前面一篇 ...
- cv2.cornerHarris()详解 python+OpenCV 中的 Harris 角点检测
参考文献----------OpenCV-Python-Toturial-中文版.pdf 参考博客----------http://www.bubuko.com/infodetail-2498014. ...
- OpenCV教程(43) harris角的检测(1)
计算机视觉中,我们经常要匹配两幅图像.匹配的的方式就是通过比较两幅图像中的公共特征,比如边,角,以及图像块(blob)等,来对两幅图像进行匹配. 相对于边,角更适合描述图像特征, ...
- OpenCV教程(45) harris角的检测(3)
在前面一篇教程中,我们通过取局部最大值的方法来处理检测结果,但是从图像中可以看到harris角的分布并不均匀,在纹理颜色比较深的地方检测的harris角结果更密集一些.本章中,我们使用一个 ...
- OpenCV教程(44) harris角的检测(2)
在上一篇教程中,我们得到的harris特征角二值图中,角的数目特别多,本章我们用一个局部最大化的方法,只保留局部值最大的harris特征角. // Harris角计算 cv::corner ...
- 第十一节、Harris角点检测原理(附源码)
OpenCV可以检测图像的主要特征,然后提取这些特征.使其成为图像描述符,这类似于人的眼睛和大脑.这些图像特征可作为图像搜索的数据库.此外,人们可以利用这些关键点将图像拼接起来,组成一个更大的图像,比 ...
- opencv-角点检测之Harris角点检测
转自:https://blog.csdn.net/poem_qianmo/article/details/29356187 先看看程序运行截图: 一.引言:关于兴趣点(interest point ...
- Opencv学习笔记------Harris角点检测
image算法测试iteratoralgorithmfeatures 原创文章,转载请注明出处:http://blog.csdn.net/crzy_sparrow/article/details/73 ...
- OpenCV Harris 角点检测子
Harris 角点检测子 目标 本教程中我们将涉及: 有哪些特征?它们有什么用? 使用函数 cornerHarris 通过 Harris-Stephens方法检测角点. 理论 有哪些特征? 在计算机视 ...
随机推荐
- Oracle 即时客户点下载以及简单连接数据库的方法
1. 下载方法 百度 oracle client 第一个即可 2. 下载地址为: https://www.oracle.com/database/technologies/instant-client ...
- 洛谷 P3384树链剖分 题解
题面 挺好的一道树剖模板: 首先要学会最模板的树剖: 然后这道题要注意几个细节: 初始化时,seg[0]=1,seg[root]=1,top[root]=root,rev[1]=root; 在线段树上 ...
- Ruby学习中(哈希变量/python的字典, 简单的类型转换)
一. 哈希变量(相当于Python中的字典) 详情参看:https://www.runoob.com/ruby/ruby-hash.html 1.值得注意的 (1). 创建Hash时需注意 # 创建一 ...
- Codeforces 1229C. Konrad and Company Evaluation
传送门 首先考虑如何算出答案,考虑枚举中间那个点,显然每个点作为中间的点的次数为入度乘出度 所以答案就是每个点的入度乘出度之和 然后每个点开一个 $vector$ 维护从它出去的点数,每次修改的时候直 ...
- (转载)sublime3安装markdown插件
原文链接 http://www.jianshu.com/p/335b7d1be39e?utm_source=tuicool&utm_medium=referral 最近升级到了 Sublime ...
- 第四章 子查询 T-SQL语言基础
子查询 SQL支持在查询语句中编写查询,或者嵌套其他查询. 最外层查询的结果集会返回给调用者,称为外部查询. 内部查询的结果是供外部查询使用的,也称为子查询. 子查询可以分为独立子查询和相关子查询.独 ...
- vs nuget找不到包
nuget.org https://api.nuget.org/v3/index.json
- VS Code 配置碰到的问题
VS Code 呈现缩进参考线以及语法高亮改变 找到 首选项——>设置→搜索renderIntentGuides→将此选项改为true(默认为false),就可以了.
- 总线(bus)简介
内容来自于<Computer Organization>,这是我的一篇学习笔记
- SpringCloudGateWay之限流
一.引言在高并发系统中,经常需要限制系统中的电流化妆.一方面是防止大量的请求使服务器过载,导致服务不可用,另一方面是防止网络攻击.常用的限流方法,如hystrix.应用线程池隔离.超过线程池的负载和g ...