OpenCV初步

安裝OpenCV

基本要求:

  • Python2.7
  • Virtualenv
$ brew install opencv

創(chuàng)建項(xiàng)目目錄

$ mkdir learn_cv  & cd $_
$ virtualenv venv

將OpenCV的鏈接庫(kù)添加到python的site-packages內(nèi)

$ 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

從靜態(tài)圖片識(shí)別人臉

具體流程如下:

  1. 調(diào)用imread讀入目標(biāo)圖片
img = cv2.imread("abba.png")
  1. 使用cvtColor方法使圖片灰度化
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
  1. 讀入訓(xùn)練模型
face_cascade = cv2.CascadeClassifier(r'./data/haarcascades/haarcascade_frontalface_default.xml')

調(diào)用 detectMultiScale方法識(shí)別圖中的人臉

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)

將重畫(huà)過(guò)的圖片顯示到窗口中:

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

如果不調(diào)用waitKey(0)窗口會(huì)馬上關(guān)閉,那樣就看不到輸出的效果了。

以下為本示例的全部代碼

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)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容