基础代码

在进入项目之前我们需要了解一些常见的函数

我们在人脸识别中所用到的大部分来自cv2这个包

1.这是一个读取图像文件并显示的代码

# -*- coding: utf-8 -*
import cv2

img = cv2.imread('face1.jpg')//读取照片括号里放路径名
cv2.imshow('face',img)//输出图像左边为输出的窗体名,右边为输出图片
cv2.waitKey(0) //没有这个代码窗体会直接关闭。

2.下面是将图片转为灰色的代码以及保存的代码

# -*- coding: utf-8 -*
import cv2

img = cv2.imread('1.jpg') #读取后格式为BGR
gray_img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #将BGR格式的转换为灰度
cv2.imshow('gray_face1',gray_img) #显示图片
cv2.waitKey(0) 
cv2.imwrite('gray_face1.jpg',gray_img) #保存图片
cv2.destroyAllWindows() #释放内存。这条代码也可不打

3.下面是修改图片尺寸的代码

# -*- coding: utf-8 -*
import cv2

img = cv2.imread('1.jpg') #读取图片
resize_img = cv2.resize(img,dsize=(500,300))  #修改尺寸
cv2.imshow('1.jpg',img) #显示原图
cv2.imshow('resize_img',resize_img) #显示修改图
print('未修改',img.shape) #.shape输出图像尺寸 #打印图片大小
print('修改',resize_img.shape) #打印图片大小
while True:
    if ord('q') == cv2.waitKey(0): #没有waitkey不显示图片,代码中意思为按q退出
        break

4.绘制框框,类似相机的人脸框框

# -*- coding: utf-8 -*
import cv2

#读取图片
img = cv2.imread('1.jpg')
#坐标
x,y,w,h = 100,100,100,100 #x,y表示起始点坐标,w,h表示宽度和高度
#绘制矩形
cv2.rectangle(img,(x,y,x+w,y+h),color=(0,0,255),thickness=1) #thickness为厚度
#绘制圆形
cv2.circle(img,center=(x+w,y+h),radius=100,color=(0,0,255),thickness=1)
#显示原图
cv2.imshow('1',img)
#等待
while True:
    if ord('q') == cv2.waitKey(0): #没有waitkey不显示图片,代码中意思为按q退出
        break
#释放内存
cv2.destroyAllWindows()

5.下面是读取摄像头并保存图片的代码

# -*- coding: utf-8 -*
import cv2

video = cv2.VideoCapture(0) #0表示默认的摄像头及笔记本摄像头,有多个录像设备可以切换数字
while(video.isOpened()): #检测是否开启摄像头
    flag,frame = video.read() #得到图像
    cv2.imshow("img",frame) #显示图像
    k = cv2.waitKey(1)  
    if k == ord(" "): #空格退出
        break
video.release() #释放
cv2.destroyAllWindows() #释放

这里在附一张图片大家可以拖到文件夹中使用。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐