Skip to content

OpenCV图像识别 ​

📅 发表于 2023-01-01

前置准备 ​

环境介绍 ​

  • Windows 10 Pro
  • Python 3.11
  • OpenCV 4.7.0.68

OpenCV库 ​

以下内容来自维基百科 2023年1月1日

OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费使用。OpenCV可用于开发实时的图像处理、计算机视觉以及模式识别程序。该程序库也可以使用英特尔公司的IPP进行加速处理。

主要API ​

cv2.cvtColor(src, code[, dst[, dstCn]])函数 ​

用于将图像从一种颜色空间转换为另一种颜色空间。

python
cv2.cvtColor(src, code[, dst[, dstCn]])

参数:
	src: 它是要更改其色彩空间的图像。
	code: 它是色彩空间转换代码。
	dst: 它是与src图像大小和深度相同的输出图像。它是一个可选参数。
	dstCn: 它是目标图像中的频道数。如果参数为0,则通道数自动从src和代码得出。它是一个可选参数。

返回值:它返回一个图像。

cv2.CascadeClassifier(xml)函数 ​

联级分类器目标检测

python
cv2.CascadeClassifier(xml)

参数:
	xml: haar人脸特征分类器 OpenCV源代码中提供有

主要代码 ​

python
import cv2 as cv

def face_detect_demo():
    # 转换灰度
    gary = cv.cvtColor(img, cv.COLOR_BGR2GRAY)

    # 分类器(OpenCV基于 Haar 级联的人脸检测器)
    face_detect = cv.CascadeClassifier("haarcascade_frontalface_alt2.xml")

    face = face_detect.detectMultiScale(gary)

    # 绘制方框
    for x, y, w, h in face:
        cv.rectangle(img, (x, y), (x + w, y + h), color=(0, 0, 255), thickness=2)

    # 展示图片
    cv.imshow('re_img', img)

# 读取图片
img = cv.imread("./pic/my.png")

face_detect_demo()

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

cv.destroyAllWindows()