opencv学习笔记-3.educoder平台-简单人脸识别第一第二关

第一关:图片简单操作

完整的人脸识别流程,一般有如下五个步骤:

  1. 图像采集:使用摄像机或摄像头采集含有人脸的图像或视频流;
  2. 人脸检测:检测图片中是否包含人脸;
  3. 预处理:对人脸图像进行灰度处理、噪声过滤等预处理;
  4. 特征点提取:提取人脸图片中包含的特征数据;
  5. 人脸识别:将新的人脸照片与人脸库进行算法匹配,输出识别结果。

1.1.采集图片
使用OpenCV采集,可以通过cv2.VideoCapture()获取摄像头并捕捉画面中的图片。函数声明为:

cv2.VideoCapture(摄像头来源)-----其中,传入的参数,指定0时为默认计算机默认摄像头,指定1可以更换来源。

1.2.获取捕获图像,函数为:

cap.read()

1.3.释放捕获对象,函数为:

cap.release()
# 引入OpenCV库
import cv2
# 调用摄像头进行拍照
cap = cv2.VideoCapture(0)
# 获取一帧图片
# 如果捕获成功,代码中ret值为真,img为捕获的图像。
ret, img = cap.read()
# 释放捕获对象
cap.release()

2.读取图片

cv2.imread(图片路径, 标记)------图片应该在当前的工作路径,或在指定的绝对路径下。

第二个参数指定图片被读取的方式:

cv2.IMREAD_COLOR : 读入彩色图像,默认模式;
cv2.IMREAD_GRAYSCALE : 以灰度模式读入图像;
cv2.IMREAD_UNCHANGED : 加载图像包含alpha通道。
也可以,使用数字简约表示以上三种标记,分别为 1, 0或-1。

import cv2
# 加载一张位于当前目录下的`images/girl.jpg`的图片
image_path = "images/girl.jpg"
# 以灰度模式读取图片
img = cv2.imread(image_path,0)

3.展示图片

import cv2
# 读取图片
image_path = "images/girl.jpg"
img = cv2.imread(image_path,1)
# 窗口展示图片
cv2.imshow('cute girl',img)
# 等待用户关闭图片窗口
cv2.waitKey(0)
# 销毁创建的所有窗口
cv2.destroyAllWindows()

4.保存图片
cv2.imwrite()将图片保存到本地。
函数声明为:
cv2.imwrite(图片路径, 图片对象)##图片应该在当前的工作路径,或在指定的绝对路径下
编程要求
请在右侧编辑器编写代码,完成如下要求:

导入openCV 库(cv2);
读取路径 step1/image/girl.jpg下的图片(图片读取模式三种任选一种都可以);
将读取到的图片保存到路径 step1/out/girl-new.jpg下。

import cv2
image_path = 'step1/image/girl.jpg'
save_image_path = 'step1/out/girl-new.jpg'
img = cv2.imread(image_path,1)
cv2.rmwrite(save_image_path,1)
/
#********** Begin **********#
# 导入OpenCV库
import cv2
#********** End **********#

# 原始图片路径
image_path = 'step1/image/girl.jpg'
# 保存图片路径
save_image_path = 'step1/out/girl-new.jpg'
img = cv2.imread(image_path,1)
#********** Begin **********#
# 读取图片并保存图片
cv2.imwrite(save_image_path,1)
#********** End **********#

第二关:色彩空间及其转换

1.1.灰度空间
在OpenCV的灰度空间中,和一般的色彩空间相同,每一个颜色都有三个量,但是只有第一个亮度有值,所以表示为(亮度,0,0)。
其中,亮度是根据如下灰度公式计算而得:
Gray = R0.299 + G0.587 + B*0.114
使用的函数为:cv2.cvtColor()。

2.2.色彩转换
它的函数声明为:
cv2.cvtColor(图片对象,转换类型)
其中,转换类型,对于BGR到Gray的转换,使cv2.COLOR_BGR2GRAY类型。
同样的,对于BGR到HSV的转换,使用cv2.COLOR_BGR2HSV类型。

# 将图片的色彩空间由BGR转换为HSV
# 执行后output_img的色彩空间变成了HSV
output_img = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

编程要求
请在右侧编辑器编写代码,完成如下要求:

将图片的色彩空间转换为灰度空间;
将处理后的图片保存到路径step2/out/girl-gray.jpg下。

import cv2
filename = "step2/image/girl.jpg"
img = cv2.imread(filename)
output_img = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
save_image_path = "step2/out/girl-gray.jdg"
cv2.imwrite(save_image_path,output_img)
/
import cv2

# 加载图片
filename = "step2/image/girl.jpg"
img = cv2.imread(filename)
#********** Begin **********#
# 将图片的色彩空间由BGR转换GRAY
output_img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#********** End **********#

save_image_path = "step2/out/girl-gray.jpg"
#********** Begin **********#
# 保存图片
cv2.imwrite(save_image_path,output_img)
#********** End **********#

你可能感兴趣的:(opencv学习,opencv,学习)