美文网首页
OpenCV初步

OpenCV初步

作者: 梁睿坤 | 来源:发表于2018-06-13 15:44 被阅读27次

    安装OpenCV

    基本要求:

    • Python2.7
    • Virtualenv
    $ brew install opencv
    

    创建项目目录

    $ mkdir learn_cv  & cd $_
    $ virtualenv venv
    

    将OpenCV的链接库添加到python的site-packages内

    $ cd /venv/bin/lib/site-packages
    $ ln -s /usr/local/opt/opencv/lib/python2.7/site-packages/cv2.so cv2.so
    

    激活virtualenv然后安装opencv-python

    (venv) $ pip install opencv-python
    

    从靜态图片识别人脸

    具体流程如下:

    1. 调用imread读入目标图片
    img = cv2.imread("abba.png")
    
    1. 使用cvtColor方法使图片灰度化
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    
    1. 读入训练模型
    face_cascade = cv2.CascadeClassifier(r'./data/haarcascades/haarcascade_frontalface_default.xml')
    

    调用 detectMultiScale方法识别图中的人脸

    faces = face_cascade.detectMultiScale(
        gray,
        scaleFactor=1.1,
        minNeighbors=5,
        minSize=(30, 30),
        flags=cv2.CASCADE_SCALE_IMAGE
    )
    

    将图中的人脸用方框圈出

    for (x, y, w, h) in faces:
        cv2.rectangle(img, (x, y), (x + w, y + w), (0, 255, 0), 2)
    

    将重画过的图片显示到窗口中:

    cv2.imshow("preview", img)
    cv2.waitKey(0)
    

    如果不调用waitKey(0)窗口会马上关闭,那样就看不到输出的效果了。

    以下为本示例的全部代码

    from __future__ import print_function
    
    import cv2
    
    img = cv2.imread("abba.png")
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    
    face_cascade = cv2.CascadeClassifier(r'./data/haarcascades/haarcascade_frontalface_default.xml')
    faces = face_cascade.detectMultiScale(
        gray,
        scaleFactor=1.1,
        minNeighbors=5,
        minSize=(30, 30),
        flags=cv2.CASCADE_SCALE_IMAGE
    )
    
    print("{0} faces detected!".format(len(faces)))
    
    for (x, y, w, h) in faces:
        cv2.rectangle(img, (x, y), (x + w, y + w), (0, 255, 0), 2)
    
    cv2.imshow("preview", img)
    cv2.waitKey(0)
    

    相关文章

      网友评论

          本文标题:OpenCV初步

          本文链接:https://www.haomeiwen.com/subject/jusarftx.html