gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python 使用Opencv实现目标检测与识别的示例代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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 目标检测与识别内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://blog.csdn.net/HuangZhang_123/article/details/80746847 。

最后此篇关于Python 使用Opencv实现目标检测与识别的示例代码的文章就讲到这里了,如果你想了解更多关于Python 使用Opencv实现目标检测与识别的示例代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com