OpenCV-机器视觉前的准备:调用摄像头接口

OpenCV这个库功能挺全的,也是免费,适合学生搞搞研究啊,随便平时兴趣爱好等等,但效果因为是免费的所以,,,

这里简单的介绍下调用摄像头接口:
haarcascades是自带的人脸识别函数,将其识别人脸的xml文件导入至程序中:
(包括人脸啊、鼻子、眼睛等等)

具体程序如下:

#作者:是最强的冰哥
#呼出摄像头程序,主要用到opencv-CascadeClassifier级联分类器
# -*- coding:utf-8 -*-
import cv2
# 测试打开摄像头检测跟踪人脸
#haarcascades是自带的人脸识别函数,将其识别人脸的xml文件导入:
detector = cv2.CascadeClassifier('haarcascades\\haarcascade_frontalface_default.xml')
#人眼识别函数:
eye_cascade = cv2.CascadeClassifier('haarcascades\\haarcascade_eye.xml')


# 获取0号摄像头的实例,外设摄像头的话为1
cap = cv2.VideoCapture(0)

# 由摄像头捕捉图像,捕捉函数返回的是两个变量:1.布尔值,true和false(ret函数);2.图像变量(img函数)
while True:
    ret, img = cap.read()
    #首先将捕获到的图像转为灰度图,因为颜色容易受到光照影响,而灰度图更具梯度
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    # 获取人脸坐标,detectMultiScale函数检测对象最大尺寸和最小尺寸,两种设置尺寸方法:
    #faces = detector.detectMultiScale(gray, 1.1, 3)
    faces = detector.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30),flags=cv2.CASCADE_SCALE_IMAGE)
    #打印看下是否出错
    print('Detected ', len(faces), " face")

    for (x, y, w, h) in faces:
        # 参数分别为 图片、左上角坐标,右下角坐标,颜色,厚度(00255)为红色,(25500)为蓝色
        cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 2)

        roi_gray = gray[y: y + h, x: x + w]
        roi_color = img[y: y + h, x: x + w]

        eyes = eye_cascade.detectMultiScale(roi_gray)
        for (ex, ey, ew, eh) in eyes:
            cv2.rectangle(roi_color, (ex, ey), (ex + ew, ey + eh), (0, 255, 0), 2)
    cv2.imshow('Mask', img)
    cv2.waitKey(3)

cap.release()
cv2.destroyAllWindows()
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值