咔叽游戏

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 348|回复: 0

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

[复制链接]
  • TA的每日心情
    无聊
    2019-6-2 14:11
  • 签到天数: 4 天

    [LV.2]圆转纯熟

    发表于 2020-10-4 13:33:48 | 显示全部楼层 |阅读模式
    在上章节讲述到图像特征检测与匹配 ,本章节是讲述目标检测与识别。后者是在前者的基础上进一步完善。
    在本章中,我们使用HOG算法,HOG和SIFT、SURF同属一种类型的描述符。功能代码如下:
    1. import cv2
    2. def is_inside(o, i):
    3. ox, oy, ow, oh = o
    4. ix, iy, iw, ih = i
    5. # 如果符合条件,返回True,否则返回False
    6. return ox > ix and oy > iy and ox + ow < ix + iw and oy + oh < iy + ih
    7. # 根据坐标画出人物所在的位置
    8. def draw_person(img, person):
    9. x, y, w, h = person
    10. cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 255), 2)
    11. # 定义HOG特征+SVM分类器
    12. img = cv2.imread("people.jpg")
    13. hog = cv2.HOGDescriptor()
    14. hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())
    15. found, w = hog.detectMultiScale(img, winStride=(8, 8), scale=1.05)
    16. # 判断坐标位置是否有重叠
    17. found_filtered = []
    18. for ri, r in enumerate(found):
    19. for qi, q in enumerate(found):
    20. a = is_inside(r, q)
    21. if ri != qi and a:
    22.   break
    23. else:
    24. found_filtered.append(r)
    25. # 勾画筛选后的坐标位置
    26. for person in found_filtered:
    27. draw_person(img, person)
    28. # 显示图像
    29. cv2.imshow("people detection", img)
    30. cv2.waitKey(0)
    31. cv2.destroyAllWindows()
    复制代码
    运行结果如图所示:

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


    这个例子是使用HOG特征进行SVM算法训练,这部分已开始涉及到机器学习的方面,通过SVM算法训练数据集,然后根据某图像与数据集进行匹配。
    到此这篇关于Python 使用Opencv实现目标检测与识别的示例代码的文章就介绍到这了,更多相关Opencv 目标检测与识别内容请搜索咔叽论坛以前的文章或继续浏览下面的相关文章希望大家以后多多支持咔叽论坛!

    原文地址:https://www.jb51.net/article/195145.htm

    QQ|免责声明|小黑屋|手机版|Archiver|咔叽游戏

    GMT+8, 2024-3-29 16:58

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表