目标:使用python及opencv库进行图片采集及瞳距计算
包含以下文件:
- capture.python:用以实现调用笔记本摄像头进行图片抓取
- feature.python:用以读取所抓取图片并进行瞳距计算
- capture.jpg:实验所用人脸图片数据
- haarcascade_frontalface_default.xml:opencv官网下载的用来检测人脸的数据文件
- haarcascade_eye.xml:opencv官网下载的用来检测人眼的数据文件
- 使用说明.txt:环境配置及代码运行说明
- .vscode:使用vscode编辑器时自动生成的配置文件
环境:
(opencv) E:\SoftwareProjection>conda list
# packages in environment at D:\miniconda\envs\opencv:
#
# Name Version Build Channel
astroid 2.4.2 pypi_0 pypi
certifi 2020.6.20 pyhd3eb1b0_3
colorama 0.4.4 pypi_0 pypi
imutils 0.5.3 pypi_0 pypi
isort 4.3.21 pypi_0 pypi
lazy-object-proxy 1.4.3 pypi_0 pypi
mccabe 0.6.1 pypi_0 pypi
numpy 1.18.5 pypi_0 pypi
opencv-python 4.4.0.42 pypi_0 pypi
pip 10.0.1 py35_0
pylint 2.6.0 pypi_0 pypi
python 3.5.6 he025d50_0
setuptools 40.2.0 py35_0
six 1.15.0 pypi_0 pypi
toml 0.10.2 pypi_0 pypi
typed-ast 1.4.1 pypi_0 pypi
vc 14.1 h0510ff6_4
vs2015_runtime 14.16.27012 hf0eaf9b_3
wheel 0.35.1 pyhd3eb1b0_0
wincertstore 0.2 py35hfebbdb8_0
wrapt 1.12.1 pypi_0 pypi
实现过程及结果:
capture.py:
调用摄像头采集图片,按s键可保存图片capture.jpg(分辨率:640×480)至当前路径,按ESC退出。若路径下本身存在同名文件,则会进行覆盖。
图片要求:人脸清晰,光线充足,且不能佩戴眼镜(眼镜反光会导致无法识别)
import numpy as np
import cv2
cap=cv2.VideoCapture(0) #参数为0为笔记本自带摄像头
while True:
success,img=cap.read() #从摄像头读取图片
#gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #转为灰度图片
cv2.imshow("img",img) #显示摄像头
k=cv2.waitKey(1) #保持画面的持续。
if k == 27:
cv2.destroyAllWindows() #通过esc键退出摄像
break
elif k==</