OpenCV(python系列之——opencv库)

本文介绍了OpenCV,一个开源的跨平台计算机视觉库,支持多种编程语言接口,涵盖了图像处理、视频分析、人脸识别等功能。文章详细讲解了OpenCV的基本操作,如读取图像、灰度处理、人脸识别和绘制边缘框的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个开源发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

能干嘛?

  1. 图像处理操作(Image processing operations)
  2. 构建图形用户界面(Build GUI)
  3. 视频分析(Video analysis)
  4. 3D重建(3D reconstruction)
  5. 特征提取(Feature extraction)
  6. 目标检测(Object detection)
  7. 机器学习(Machine learning)
  8. 计算摄影(Computational photography)
  9. 形状分析(Shape analysis)
  10. 光流算法(Optical flow algorithms)
  11. 人脸和目标识别(Face and object recognition)
  12. 表面匹配(Surface matching)
  13. 文本检测和识别(Text detection and recognition)

OpenCV操作基本步骤

读取文件

import cv2
import numpy as np 

img = cv2.imread("img.PNG")

展示图片

# 在之前的基础上
cv2.imshow("image",img)

cv2.waitKey(0)
cv2.destroyAllWindow()

OpenCV图像灰度处理

有两种方式

第一种,当你读取图片时就能够把图片进行灰度化:

img = cv2.imread("img.PNG", cv2.IMREAD_GRAYSCALE)

第二种用的最多,读取的时候不转化,加一个转化成灰色图片的步骤。

# 读取步骤
img = cv2.imread("image.jpg",cv2.COLOR_BGR2RGB)

#灰度化步骤
gray = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)

OpenCV进行人脸识别

OpenCV 会给我们提供人脸识别的文件,里面包含了进行识别的参数。只需要两步便可以。第一步启动人脸识别的类并导入该文件,第二步讲人脸识别的方法应用到我们读取的图片上。

# 第一步
face_cascade = cv2.CascadeClassifier(r"./haarcascade_frontalface_default.xml")

# 第二步
faces = face_cascade.detectMultiScale(img,1.15,5)

OpenCV图像画边缘框

需要有包含四个元素的元祖作为循环变量去接受脸部的四个特征值。举例如下:
faces 是进行人脸识别后的每个人脸的参数矩阵。

for (x,y,w,h) in faces:
    cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0),2)

 完整代码

import cv2
import numpy as np

img = cv2.imread("image.PNG", cv2.COLOR_BGR2RGB)
# print(img)
print(img.shape)

gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)

face_cascade = cv2.CascadeClassifier(r'./haarcascade_frontalface_default.xml')
faces = face_cascade.detectMultiScale(gray, 1.15, 5)

# print(faces.shape)

for (x, y, w, h) in faces:
    cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 1)

cv2.imshow("face", img)

cv2.waitKey(0)
cv2.destroyAllWindows()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值