OpenCV介绍

一般提到计算机视觉,就不得不谈到OpenCV,因为它是一个历史悠久、功能丰富、社区活跃的开源视觉开发库。
你肯定想不到OpenCV诞生于1999年,今年22岁高龄了。OpenCV全名是Open Source Computer Vision Library(开源的计算机视觉库)。OpenCV提供了计算机视觉的基础的功能,它是开发者的必备工具,另一方面它还不断的在新版本中添加对新的算法硬件的支持,紧随潮流。

安装OpenCV

如果想使用OpenCV进行开发,首先需要安装opencv-python。
打开命令行窗口,使用pip命令将opencv-python模块安装到python环境中:
(pip 是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。)

python -m pip install opencv-python

因为官方服务器在国外如果下载缓慢的同学可以使用清华的镜像进行下载:

python -m pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple

下载完成可以打开命令行窗口使用pip list检查opencv-python包

opencv python 创建空白图片 opencv python代码_xml


在这里前期工作已经完成了,开心

opencv python 创建空白图片 opencv python代码_xml_02

人脸识别

1、打开python官方自带的IDLE,大家可以通过windows左下角搜索直接打开

opencv python 创建空白图片 opencv python代码_人脸识别_03


opencv python 创建空白图片 opencv python代码_人脸识别_04


点击File按钮,再点击New File(第一次写所以可能废话有点多,故意凑字数☺)

opencv python 创建空白图片 opencv python代码_xml_05


opencv python 创建空白图片 opencv python代码_python_06

将下列代码拷贝到里面

import cv2#引入opencv-python包中的cv2模块

img = cv2.imread(r"D:\gril.jpg")#读取需要识别的图片,D:\gril.jpg是你存放图片的绝对路径

#图片灰度化并保存在gray变量
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

#创建级联分类器对象,haarcascade_frontalface_default.xml是通过大数据提炼出的人脸特征数据文件
face_cascade = cv2.CascadeClassifier(r"C:\Users\14590\Desktop\opencv\haarcascade_frontalface_default.xml")

#通过gray中数组数据和级联分类器中的特征数据进行匹配并且找到人脸
#scaleFactor参数是每次图像缩小的比例,(图片中人脸有大有小,需要不断缩小再次扫描才能扫描出图片所有的人脸)
#minNeighbors 是每个目标至少要被检测到多少次,(每一个目标至少被检测多少次才能确定结果)
faces = face_cascade.detectMultiScale(gray,scaleFactor = 1.5 ,minNeighbors = 5)

#画人脸框(多少个人脸就循环画框框几次):参数一是需要识别的图片,参数二是框框的左上角坐标,参数三是框框右下角坐标,参数四是RGB颜色参数,参数五是框框的宽度
for x,y,w,h in faces:
	img = cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),3)

#展示最终的人脸识别后的图片
cv2.imshow("learn",img)

haarcascade_frontalface_default.xml文件下载方式:

下载地址:
https://github.com/opencv/opencv/tree/master/data/haarcascades

1.找到haarcascade_frontalface_default.xml等文件,点击进去.

2.找到Raw,右键链接(目标)另存为。

opencv python 创建空白图片 opencv python代码_人脸识别_07

最终效果

点击Run中的Run Module或者F5保存并运行就会看到结果啦!!!

识别之前的图片:

opencv python 创建空白图片 opencv python代码_OpenCV_08

识别之后的图片:

opencv python 创建空白图片 opencv python代码_人脸识别_09

其他的基本操作:

#修改图片的长宽
cv2.resize(img,500,200)
#打印图片的长宽
print(img.shape)
#保存图片:参数一是存放图片的绝对路径
cv2.imwrite(r"D:\gril2.jpg",img)
#关闭图片窗口
cv2.destroyWindow("窗口名称")
#python进程进入等待按键输入状态,key是获得键盘输入的ASCILL码如27是ESC按键
key = cv2.waitKey(0)#0代表持续等待,如果2000代表等待2000毫秒,2000毫秒后自动退出