Python 使用Opencv实现目标检测与识别的示例代码


Posted in Python onSeptember 08, 2020

在上章节讲述到图像特征检测与匹配 ,本章节是讲述目标检测与识别。后者是在前者的基础上进一步完善。
在本章中,我们使用HOG算法,HOG和SIFT、SURF同属一种类型的描述符。功能代码如下:

import cv2
def is_inside(o, i):
 ox, oy, ow, oh = o
 ix, iy, iw, ih = i
 # 如果符合条件,返回True,否则返回False
 return ox > ix and oy > iy and ox + ow < ix + iw and oy + oh < iy + ih

# 根据坐标画出人物所在的位置
def draw_person(img, person):
 x, y, w, h = person
 cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 255), 2)

# 定义HOG特征+SVM分类器
img = cv2.imread("people.jpg")
hog = cv2.HOGDescriptor()
hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())
found, w = hog.detectMultiScale(img, winStride=(8, 8), scale=1.05)

# 判断坐标位置是否有重叠
found_filtered = []
for ri, r in enumerate(found):
 for qi, q in enumerate(found):
 a = is_inside(r, q)
 if ri != qi and a:
  break
 else:
 found_filtered.append(r)
# 勾画筛选后的坐标位置
for person in found_filtered:
 draw_person(img, person)
# 显示图像
cv2.imshow("people detection", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果如图所示:

Python 使用Opencv实现目标检测与识别的示例代码

这个例子是使用HOG特征进行SVM算法训练,这部分已开始涉及到机器学习的方面,通过SVM算法训练数据集,然后根据某图像与数据集进行匹配。

到此这篇关于Python 使用Opencv实现目标检测与识别的示例代码的文章就介绍到这了,更多相关Opencv 目标检测与识别内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python中defaultdict的用法详解
Jun 07 Python
Python 获得命令行参数的方法(推荐)
Jan 24 Python
python Selenium实现付费音乐批量下载的实现方法
Jan 24 Python
Python实现点阵字体读取与转换的方法
Jan 29 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
Apr 15 Python
python实现WebSocket服务端过程解析
Oct 18 Python
Python编译成.so文件进行加密后调用的实现
Dec 23 Python
基于pygame实现童年掌机打砖块游戏
Feb 25 Python
Django CSRF认证的几种解决方案
Mar 03 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
Jul 13 Python
PyQt中使用QtSql连接MySql数据库的方法
Jul 28 Python
opencv检测动态物体的实现
Jul 21 Python
Python requests接口测试实现代码
Sep 08 #Python
Python unittest装饰器实现原理及代码
Sep 08 #Python
Python selenium环境搭建实现过程解析
Sep 08 #Python
Python unittest生成测试报告过程解析
Sep 08 #Python
Python使用Selenium模拟浏览器自动操作功能
Sep 08 #Python
Python unittest如何生成HTMLTestRunner模块
Sep 08 #Python
Django模型验证器介绍与源码分析
Sep 08 #Python
You might like
我的论坛源代码(六)
2006/10/09 PHP
PHP 在线翻译函数代码
2009/05/07 PHP
laravel 使用auth编写登录的方法
2019/09/30 PHP
TNC vs IO BO3 第一场2.13
2021/03/10 DOTA
JQuery从头学起第三讲
2010/07/06 Javascript
js调试工具console.log()方法查看js代码的执行情况
2014/08/08 Javascript
js中this的用法实例分析
2015/01/10 Javascript
js运动动画的八个知识点
2015/03/12 Javascript
JavaScript中的Object对象学习教程
2016/05/20 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
2016/09/04 Javascript
Javascript中字符串相关常用的使用方法总结
2017/03/13 Javascript
官方推荐react-navigation的具体使用详解
2018/05/08 Javascript
Vue页面骨架屏注入方法
2018/05/13 Javascript
React中嵌套组件与被嵌套组件的通信过程
2018/07/11 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
vue-router懒加载速度缓慢问题及解决方法
2018/11/25 Javascript
微信小程序云开发之模拟后台增删改查
2019/05/16 Javascript
vue中datepicker的使用教程实例代码详解
2019/07/08 Javascript
微信小程序左滑删除实现代码实例
2019/09/16 Javascript
详解Vue串联过滤器的使用场景
2020/04/30 Javascript
JQuery Ajax如何实现注册检测用户名
2020/09/25 jQuery
[01:13]这,就是刀塔
2014/07/16 DOTA
json跨域调用python的方法详解
2017/01/11 Python
Python语言快速上手学习方法
2018/12/14 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
2019/06/19 Python
Python编程学习之如何判断3个数的大小
2019/08/07 Python
查看Python依赖包及其版本号信息的方法
2019/08/13 Python
英国和世界各地鲜花速递专家:Arena Flowers
2018/02/10 全球购物
在阿尔卑斯山或希腊度过快乐假期:Alpine Elements
2019/12/28 全球购物
金讯Java笔试题目
2013/06/18 面试题
幼儿教师师德师风自我剖析材料
2014/09/29 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
聊一聊Redis与MySQL双写一致性如何保证
2021/06/26 Redis
django中websocket的具体使用
2022/01/22 Python
Python Pandas 删除列操作
2022/03/16 Python
教你nginx跳转配置的四种方式
2022/07/07 Servers