opencv 学习之简单人脸识别学习

这次学习主要是从http://blog.csdn.net/wangyaninglm/article/details/51731989这篇文章里学到的。

学习 opencv已经快4个月多了,看了很多关于图像处理的文章和书籍,但只是学会一些比较基础的关于图像基础操作,例如找出背景之类简单操作。

这次,挑战稍微实用的人脸识别。步骤较为简单,首先读出图片,然后将其转换为灰度图。加载官方的人脸识别库。

然后调用detectMultiScale(gray, 1.2,3,CV_HAAR_SCALE_IMAGE,Size(30, 30))函数,获取是被出来的人脸序列(实际是关于人脸坐标和大小的2x2矩阵序列);用矩形圈起来。

源代码如下:

#coding=utf-8
import numpy as np
import cv2 
def faceRecognize(image):
	# 检测出人脸的官方库加载
	face_cas=cv2.CascadeClassifier('lbpcascade_frontalface.xml')
	#读取图片
	img=cv2.imread(image);
	#获取图片灰度
	gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY);
	
	# 识别输入图片中的人脸对象.返回对象的矩形尺寸
	# 函数原型detectMultiScale(gray, 1.2,3,CV_HAAR_SCALE_IMAGE,Size(30, 30))
	# gray需要识别的图片
	# 1.03:表示每次图像尺寸减小的比例
	# 5:表示每一个目标至少要被检测到4次才算是真的目标(因为周围的像素和不同的窗口大小都可以检测到人脸)
	# CV_HAAR_SCALE_IMAGE表示不是缩放分类器来检测,而是缩放图像,Size(30, 30)为目标的最小最大尺寸
	# faces:表示检测到的人脸目标序列,将这张图片里面的所有人脸用矩形圈起来
	faces = face_cas.detectMultiScale(gray, 1.03, 5)
	for(x,y,w,h)in faces:
		if w+h>200:
			img2=cv2.rectangle(img,(x,y),(x+w,y+h),(255,255,255),4);
			
	cv2.imwrite("2.jpg",img);

if __name__ == "__main__":
    faceRecognize("./1.jpg")
原图:



效果图如下:



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值