【上】带你玩转人脸识别--读取图片,灰度转换,尺寸修改,绘制矩形快速入门

文章目录

  • 前 言
  • 安 装 OpenCV
  • 导入模块
    • 1.读取图片 (imread,imshow)
    • 2.灰度转换 (cvtColor)
    • 3.尺寸修改 (resize)
    • 4.矩形、圆形的绘制 (rectangle,circle)
  • 结 语

前 言

OpenCV是计算机视觉中最受欢迎的库,能够在python中使用。

【上】带你玩转人脸识别--读取图片,灰度转换,尺寸修改,绘制矩形快速入门_第1张图片
OpenCV库是2500多种优化算法的组合,可用于检测和识别不同的人脸,实时识别图像中的对象,使用视频和网络摄像头对不同的人类动作进行分类,跟踪摄像机的运动,跟踪运动对象(例如汽车、人等),实时计数对象,缝合图像来产生高分辨率图像,从图像数据库中查找相似的图像,在使用闪光灯拍摄的图像中消除红眼并提高图像质量,跟踪眼睛的运动,跟踪脸部等。

安 装 OpenCV

控制台输入以下命令即可:

pip install opencv-python -i https://pypi.douban.com/simple

导入模块

import cv2 as cv 

1.读取图片 (imread,imshow)

imread:获取图像路径

imshow:显示图像。其中,face为显示的图像的名称

waitkey:设置等待时间,单位无为毫秒,1000ms=1s,设置为0则永久显示

destroryAllwindows:清理内存

# 导入模块
import cv2 as cv
# 读取图像
img =cv.imread('./facefile/face1.png')
# 显示图片
cv.imshow('face',img)
# 显示时间
cv.waitKey(0)
# 清理内存
cv.destroyAllWindows()

运行结果:
【上】带你玩转人脸识别--读取图片,灰度转换,尺寸修改,绘制矩形快速入门_第2张图片

2.灰度转换 (cvtColor)

cvtColor:转换图片颜色

cv.COLOR_xxxxx参数:可以将图片转换为多种颜色,这里选择灰色处理。

# 读取图像
img =cv.imread('./facefile/face1.png')
# 灰度处理
gray_img = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
# 保存灰度图片
cv.imwrite('./facefile/gray_face1.jpg',gray_img)
# 显示灰度图片
cv.imshow('grayface',gray_img)

cv.waitKey(0)
cv.destroyAllWindows()

运行结果:
【上】带你玩转人脸识别--读取图片,灰度转换,尺寸修改,绘制矩形快速入门_第3张图片

3.尺寸修改 (resize)

resize:修改图片尺寸

dsize参数:设置图片大小(宽高)

img.shape:显示图片尺寸(高宽)

# 导入模块
import cv2 as cv
# 读取图像
img =cv.imread('./facefile/face1.png')
# 灰度处理
gray_img = cv.cvtColor(img,cv.COLOR_BGR2GRAY)

# 保存灰度图片
cv.imwrite('./facefile/gray_face1.jpg',gray_img)

# 修改尺寸大小
resize_grayimg = cv.resize(gray_img,dsize=(400,300)) #宽高

# 显示图片大小
print('BeforeSize:',gray_img.shape)
print('AfterSize:',resize_grayimg.shape)

# 显示灰度图片
cv.imshow('grayface',resize_grayimg)
# 显示原图
cv.imshow('face',gray_img)

# 按空格显示结束
while True:
    if ord(' ') == cv.waitKey(0):
        break
cv.destroyAllWindows()

运行结果:
【上】带你玩转人脸识别--读取图片,灰度转换,尺寸修改,绘制矩形快速入门_第4张图片

4.矩形、圆形的绘制 (rectangle,circle)

rectangle:绘制矩形

color:参数设置颜色(B,G,R)

thickness:参数设置边框宽度

circle:绘制圆形

center参数:设置圆心

radius参数:设置半径

import cv2 as cv

gray_img = cv.imread('./facefile/gray_face1.jpg')

# 设置尺寸
gray_resizeimg = cv.resize(gray_img,dsize=(350,400))

# 设置坐标
x,y,w,h = (130,130,100,110)
# 绘制矩形
cv.rectangle(gray_resizeimg,(x,y),(x+w,y+h),color=(0,0,255),thickness=1)
# 绘制圆形
cv.circle(gray_resizeimg,center=(x+w//2,y+h//2),radius=60,color=(255,0,0),thickness=2)

cv.imshow('resizeimg',gray_resizeimg)

while True:
    if ord(' ') == cv.waitKey(0):
        break
cv.destroyAllWindows()

运行结果:
【上】带你玩转人脸识别--读取图片,灰度转换,尺寸修改,绘制矩形快速入门_第5张图片

结 语

这篇文章主要带大家了解使用OpenCV读取图片,并对图片进行修改、在人脸上画框。这对后续的人脸检测都有着极大的用处。

版权声明:本文为作者授权3D视觉开发者社区发布,仅做学术分享,版权归原作者所有,若涉及侵权内容请联系删文。

3D视觉开发者社区是由奥比中光给所有开发者打造的分享与交流平台,旨在将3D视觉技术开放给开发者。平台为开发者提供3D视觉领域免费课程、奥比中光独家资源与专业技术支持。

点击加入3D视觉开发者社区,和开发者们一起讨论分享吧~

也可移步微信关注官方公众号 3D视觉开发者社区 ,获取更多干货知识哦!

你可能感兴趣的:(opencv,计算机视觉,python)