Python 使用Opencv实现目标检测与识别的示例代码
在上章节讲述到图像特征检测与匹配 ,本章节是讲述目标检测与识别。后者是在前者的基础上进一步完善。
在本章中,我们使用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()
运行结果如图所示:
这个例子是使用HOG特征进行SVM算法训练,这部分已开始涉及到机器学习的方面,通过SVM算法训练数据集,然后根据某图像与数据集进行匹配。
到此这篇关于Python 使用Opencv实现目标检测与识别的示例代码的文章就介绍到这了,更多相关Opencv 目标检测与识别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Python中用Descriptor实现类级属性(Property)详解
这篇文章主要介绍了Python中用Descriptor实现类级属性(Property)详解,本文先是讲解了decorator是什么,然后给出了通过Descriptor来做一个类级的Property实例,需要的朋友可以参考下2014-09-09python GUI库图形界面开发之PyQt5线程类QThread详细使用方法
这篇文章主要介绍了python GUI库图形界面开发之PyQt5线程QThread类详细使用方法,需要的朋友可以参考下2020-02-02python 队列基本定义与使用方法【初始化、赋值、判断等】
这篇文章主要介绍了python 队列基本定义与使用方法,结合实例形式分析了Python队列的定义、初始化、赋值、判断等相关操作技巧,需要的朋友可以参考下2019-10-10
最新评论