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进阶教程之循环对象
Aug 30 Python
python中List的sort方法指南
Sep 01 Python
python字符串替换的2种方法
Nov 30 Python
Python 的描述符 descriptor详解
Feb 27 Python
详解Python中的变量及其命名和打印
Mar 11 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
Nov 03 Python
python+splinter自动刷新抢票功能
Sep 25 Python
Python3.5常见内置方法参数用法实例详解
Apr 29 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
Oct 10 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
Feb 26 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
Mar 28 Python
使用python无账号无限制获取企查查信息的实例代码
Apr 17 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原创论坛
2006/10/09 PHP
非常实用的php弹出错误警告函数扩展性强
2014/01/17 PHP
php中mysql连接和基本操作代码(快速测试使用,简单方便)
2014/04/25 PHP
php通过array_merge()函数合并关联和非关联数组的方法
2015/03/18 PHP
PHP多维数组元素操作类的方法
2016/11/14 PHP
PHPCMS手机站伪静态设置详细教程
2017/02/06 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
2017/11/24 PHP
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
Jquery 类网页微信二维码图块滚动效果具体实现
2013/10/14 Javascript
JavaScript中的操作符==与===介绍
2014/12/31 Javascript
Javascript函数式编程语言
2015/10/11 Javascript
JavaScript实现的背景自动变色代码
2015/10/17 Javascript
JQuery学习总结【一】
2016/12/01 Javascript
JS实现复制内容到剪贴板功能
2017/02/05 Javascript
JSON与JS对象的区别与对比
2017/03/01 Javascript
Bootstrap警告框(Alert)插件使用方法
2017/03/21 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
基于vue.js无缝滚动效果
2018/01/25 Javascript
Vue Promise的axios请求封装详解
2018/08/13 Javascript
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
vue elementui el-form rules动态验证的实例代码详解
2019/05/23 Javascript
javascript设计模式之迭代器模式
2020/01/30 Javascript
浅谈vue 多个变量同时赋相同值互相影响
2020/08/05 Javascript
详解Python中的type()方法的使用
2015/05/21 Python
使用rst2pdf实现将sphinx生成PDF
2016/06/07 Python
浅谈python字符串方法的简单使用
2016/07/18 Python
Python中属性和描述符的正确使用
2016/08/23 Python
python实现下载整个ftp目录的方法
2017/01/17 Python
Python编程之基于概率论的分类方法:朴素贝叶斯
2017/11/11 Python
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
django框架实现模板中获取request 的各种信息示例
2019/07/01 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
2019/08/21 Python
html5理解head_动力节点Java学院整理
2017/07/13 HTML / CSS
What's the difference between Debug and Trace class? (Debug类与Trace类有什么区别)
2013/09/10 面试题
用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别
2012/11/04 面试题
副乡长民主生活会个人对照检查材料思想汇报
2014/10/01 职场文书