前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenCV与图像处理(七)

OpenCV与图像处理(七)

作者头像
Must
发布2020-07-28 11:33:04
3120
发布2020-07-28 11:33:04
举报
文章被收录于专栏:机器视觉工坊机器视觉工坊

以下代码均在python3.6,opencv4.2.0环境下试了跑一遍,可直接运行。


1、基于OpenCV中自带的HOG的行人检测分类器,实现行人检测

# *_*coding:utf-8 *_*
import cv2
import numpy as np

img = cv2.imread('person.jpg')
hog = cv2.HOGDescriptor()
hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector()) #使用opencv默认的模型
rects, _ = hog.detectMultiScale(img, winStride=(4,4), padding=(8,8), scale=1.05)
for (x,y,w,h) in rects:
    cv2.rectangle(img, (x,y), (x+w,y+h), (0,0,255), 2)
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果:

2、基于OpenCV中自带的Haar的人脸检测分类器,实现人脸人眼检测

1)人脸检测

# -*- coding: utf-8 -*-
import cv2
import numpy as np

face_cascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")

img_path = 'face.jpg'
img = cv2.imread(img_path)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
faceRects = face_cascade.detectMultiScale(gray,1.1,5)
for faceRect in faceRects:
    x, y, w, h = faceRect
    cv2.rectangle(img, (x,y), (x+w,y+h), (255,0,0), 2, 8, 0) 
cv2.namedWindow("image", cv2.WINDOW_AUTOSIZE)
cv2.imshow("image", img)

cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果:

2)人脸人眼检测

# -*- coding: utf-8 -*-
import cv2
import numpy as np

face_cascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
eye_cascade = cv2.CascadeClassifier("haarcascade_eye_tree_eyeglasses.xml")

img_path = 'face.jpg'
img = cv2.imread(img_path)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

faceRects = face_cascade.detectMultiScale(gray,1.1,5)
l=len(faceRects)
print(l)
for faceRect in faceRects:
    x, y, w, h = faceRect
    cv2.rectangle(img, (x,y), (x+w,y+h), (255,0,0), 2, 8, 0)

    roi_gray = gray[y:y+h,x:x+w]
    roi_color = img[y:y+h,x:x+w]
    
    eyes = eye_cascade.detectMultiScale(roi_gray,1.1,1,cv2.CASCADE_SCALE_IMAGE,(2,2))
    for (ex,ey,ew,eh) in eyes:
        cv2.rectangle(roi_color, (ex,ey), (ex+ew,ey+eh), (0,255,0), 2)

cv2.namedWindow("image", cv2.WINDOW_AUTOSIZE)
cv2.imshow("image", img)

cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果:

3、基于OpenCV中自带的LBP的人脸检测分类器,实现人脸检测

# -*- coding: utf-8 -*-
import cv2
import numpy as np

face_cascade = cv2.CascadeClassifier("lbpcascade_frontalface.xml")

img_path = 'face.jpg'
img = cv2.imread(img_path)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

faceRects = face_cascade.detectMultiScale(gray,1.1,5)
for faceRect in faceRects:
    x, y, w, h = faceRect
    cv2.rectangle(img, (x,y), (x+w,y+h), (255,0,0), 2, 8, 0)

cv2.namedWindow("image", cv2.WINDOW_AUTOSIZE)
cv2.imshow("image", img)

cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果:

以上内容如有错误或者需要补充的,请留言!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器视觉工坊 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档