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 import用法以及与from...import的区别
May 28 Python
Python卸载模块的方法汇总
Jun 07 Python
python获取网页中所有图片并筛选指定分辨率的方法
Mar 31 Python
Window10+Python3.5安装opencv的教程推荐
Apr 02 Python
Python函数装饰器实现方法详解
Dec 22 Python
python opencv鼠标事件实现画框圈定目标获取坐标信息
Apr 18 Python
DJango的创建和使用详解(默认数据库sqlite3)
Nov 18 Python
Python3实现配置文件差异对比脚本
Nov 18 Python
Python 获取numpy.array索引值的实例
Dec 06 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
Mar 28 Python
在服务器上安装python3.8.2环境的教程详解
Apr 26 Python
Python爬虫之Selenium警告框(弹窗)处理
Dec 04 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
新版PHP将向Java靠拢
2006/10/09 PHP
深入apache host的配置详解
2013/06/09 PHP
PHP+javascript制作带提示的验证码源码分享
2014/05/28 PHP
PHP统计目录大小的自定义函数分享
2014/11/18 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
2015/03/18 PHP
iOS+PHP注册登录系统 PHP部分(上)
2016/12/26 PHP
完美解决在ThinkPHP控制器中命名空间的问题
2017/05/05 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
JavaScript 反科里化 this [译]
2012/09/20 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
2013/11/13 Javascript
javascript中的原型链深入理解
2014/02/24 Javascript
JavaScript的内存释放问题详解
2015/01/21 Javascript
JavaScript将数组转换成CSV格式的方法
2015/03/19 Javascript
javascript模拟C#格式化字符串
2015/08/26 Javascript
Bootstrap3制作搜索框样式的方法
2016/07/11 Javascript
第一次接触神奇的Bootstrap表单
2016/07/27 Javascript
jquery自定义表单验证插件
2016/10/12 Javascript
微信小程序 闭包写法详细介绍
2016/12/14 Javascript
easyUI combobox实现联动效果
2017/01/17 Javascript
js原生Ajax的封装和原理详解
2017/03/11 Javascript
Vue filters过滤器的使用方法
2017/07/14 Javascript
详解使用create-react-app快速构建React开发环境
2018/05/16 Javascript
微信小程序bindinput与bindsubmit的区别实例分析
2019/04/17 Javascript
Nuxt的路由配置和参数传递方式
2020/11/06 Javascript
详解Python中dict与set的使用
2015/08/10 Python
Python的Flask框架中的Jinja2模板引擎学习教程
2016/06/30 Python
Django在win10下的安装并创建工程
2017/11/20 Python
深入浅析python with语句简介
2018/04/11 Python
django利用request id便于定位及给日志加上request_id
2018/08/26 Python
用python打印菱形的实操方法和代码
2019/06/25 Python
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
中考冲刺决心书
2014/03/11 职场文书
赡养老人协议书
2014/04/21 职场文书
论文指导教师评语
2014/04/28 职场文书
2014年设计师工作总结
2014/11/25 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书