Python+dilb는 단순히 얼굴 인식을 구현합니다(코드 포함).

dilb 및 face_recognition의 타사 패키지 설치에 실패하면 Python으로 이동하여 dilb 및 face_recognition의 타사 패키지 설치 실패를 해결하십시오 - Programmer Sought

목차

1. 환경 구성

2. 사전 지식

1 읽기 그림

2 그레이스케일 변환

解决报错cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:182: 오류: (-215:어설션 실패) !_src .empty() 함수 'cv::cvtColor'

3 크기 수정

4 직사각형 그리기

5 얼굴 인식


1. 환경 구성

pycharm에서 cv2를 설치하려면 opencv-python 라이브러리를 설치해야 하는데, 이 라이브러리는 내장되어 있지 않으므로 pip해야 합니다. opencv로 작성하지 않도록 주의하세요! 또한 자체적으로 다른 종속성 라이브러리를 설치합니다.

pip install opencv-python

참고: 가져올 때 opencv-python 이나 opencv가 아니라 cv2를 사용합니다!

import cv2

 

2. 사전 지식

dlib는 얼굴 특징 키 포인트 감지를 지원하며 공식은 68차원 및 5차원 얼굴 키 스토어 감지 사전 학습 모델을 다운로드하여 사용할 수 있도록 제공합니다.

해당 데이터 및 모델 파일 다운로드 주소 : /files의 인덱스

1 읽기 그림

그림을 처리하려면 먼저 그림을 읽어야 하고, 읽을 수 없으면 그림을 표시해야 합니다.

전체 코드는 다음과 같습니다. 

# 导入cv模块
import cv2 as cv

# 读取图片
img = cv.imread('face4.jpg')
# 显示图片
cv.imshow('read_img', img)
# 为了防止自动退出(pycharm可能会发生),所以可以在代码后面加入:等待
cv.waitKey(0)
# 释放内存
cv.destroyAllWindows()

효과는 다음과 같습니다. 

2 그레이스케일 변환

이미지 전처리에서 이미지 그레이스케일 변환은 이미지 향상의 중요한 수단입니다.그레이스케일 변환은 이미지 대비, 선명한 이미지, 뚜렷한 특징을 확장할 수 있습니다.그레이스케일 변환은 주로 점 연산을 사용하여 픽셀 그레이스케일을 보정합니다.그레이 값은 그레이 스케일의 그레이 값을 결정합니다. 해당 출력 포인트는 이미지 변환을 기반으로 한 작업입니다.

디지털 이미지에서 픽셀은 기본 표현 단위이며 각 픽셀의 밝기는 그레이 값으로 표시되며 밝기 정보만 포함하고 색상 정보는 포함하지 않는 이미지를 그레이 스케일 이미지라고 합니다. , 각각의 픽셀의 그레이 값은 [0,255] 간격의 정수로 표현됩니다.즉, 이미지는 256개의 그레이 레벨로 나뉩니다.컬러 이미지의 경우 각 픽셀은 R의 세 가지 단색 조합으로 구성됩니다. G, B. 각 픽셀의 R, G, B가 정확히 동일한 경우, 즉 R=G=B=D이면 이미지는 그레이스케일 이미지입니다. 여기서 D는 각 픽셀의 그레이스케일 값이라고 합니다. .

전체 코드는 다음과 같습니다. 

# 导入cv模块
import cv2 as cv

# 读取图片
img = cv.imread('face1.jpg')
# 灰度转换
gray_img = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
# 显示灰度图片
cv.imshow('gray', gray_img)
# 保存灰度图片
cv.imwrite('gray_face11.jpg', gray_img)
# 显示图片
cv.imshow('read_img', img)
# 等待
cv.waitKey(0)
# 释放内存
cv.destroyAllWindows()

解决报错cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:182: 오류: (-215:어설션 실패) !_src .empty() 함수 'cv::cvtColor'

오류 :

코드가 오류를 보고하고 코드가 확인되었으며 문제가 없음을 발견했습니다. 무슨 일입니까? 

이유 : 경로에 중국어가 있기 때문일 수 있습니다. opencv의 치명적인 약점은 경로에 중국어가 있을 수 없다는 것입니다!

솔루션 :

(1) 경로에 중국어가 없는 새 폴더를 만들고 코드를 다시 실행하지만 여전히 오류를 보고합니다.

(2) 경로에 한자가 없는데도 여전히 표시가 안되도록 수정하였습니다.

이것은 상대적으로 드문 일이며 이미지 형식이 상대적으로 인기가 없거나 잘못되어 표시할 수 없기 때문일 수 있습니다. --" 사진 변경

성공하면 효과는 다음과 같습니다. 

 

3 크기 수정

전체 코드는 다음과 같습니다. 

# 导入cv模块
import cv2 as cv

# 读取图片
img = cv.imread('face4.jpg')
# 修改尺寸
resize_img = cv.resize(img, dsize=(200, 200))
# 显示原图
cv.imshow('img', img)
# 显示修改后的
cv.imshow('resize_img', resize_img)
# 打印原图尺寸大小
print('未修改:', img.shape)
# 打印修改后的大小
print('修改后:', resize_img.shape)
# 等待
while True:
    if ord('q') == cv.waitKey(0):
        break
# 释放内存
cv.destroyAllWindows()

효과는 다음과 같습니다. 

 

4 직사각형 그리기

전체 코드는 다음과 같습니다. 

# 导入cv模块
import cv2 as cv

# 读取图片
img = cv.imread('face4.jpg')
# 坐标
x, y, w, h = 100, 100, 100, 100
# 绘制矩形
cv.rectangle(img, (x, y, x + w, y + h), color=(0, 0, 255), thickness=1)
# 绘制圆形
cv.circle(img, center=(x + w, y + h), radius=100, color=(255, 0, 0), thickness=5)
# 显示
cv.imshow('re_img', img)
while True:
    if ord('q') == cv.waitKey(0):
        break
# 释放内存
cv.destroyAllWindows()

효과는 다음과 같습니다. 

 

5 얼굴 인식

(1) 먼저 우리가 사용할 haarcascade_frontalface_alt2.xml을 찾아야 하는데 위치는 파이썬 환경/가상환경에서 lib/site-packages/의 cv2/data/ 아래에 있습니다.

여기 내 경로는 D:/my/python-pycharm/python-envs/venv-deep/Lib/site-packages/cv2/data/haarcascade_frontalface_alt2.xml입니다.

전체 코드는 다음과 같습니다. 

# 导入cv模块
import cv2 as cv

# 检测函数
def face_detect_demo():
    gary = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
    face_detect = cv.CascadeClassifier('D:/my/python-pycharm/python-envs/venv-deep/Lib/site-packages/cv2/data/haarcascade_frontalface_alt2.xml')
    face = face_detect.detectMultiScale(gary, 1.01, 5, 0, (100, 100), (300, 300))
    for x, y, w, h in face:
        cv.rectangle(img, (x, y), (x + w, y + h), color=(0, 0, 255), thickness=2)
    cv.imshow('result', img)


# 读取图像
img = cv.imread('face4.jpg')
# 检测函数
face_detect_demo()
# 等待
while True:
    if ord('q') == cv.waitKey(0):
        break
# 释放内存
cv.destroyAllWindows()

효과는 다음과 같습니다. 

 

추천

출처blog.csdn.net/qq_45956730/article/details/128995766