首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python人脸检测在终端中不起作用

Python人脸检测在终端中不起作用
EN

Stack Overflow用户
提问于 2020-12-15 18:48:14
回答 2查看 418关注 0票数 0

我正在尝试用opencv编写一个人脸检测python程序,但是当我运行下面的shell命令时,我得到了以下错误:

当我输入: python main2.py abba.png haarcascade_frontalface_default.xml

我正在使用opencv,并且我使用了以下文档Realpython face Recognition

代码语言:javascript
运行
复制
(venv) C:\Users\User\PycharmProjects\main_1>python face_detect.py abba.png haarcascade_frontalface_default.xml
C:\Users\User\AppData\Local\Programs\Python\Python39\python.exe: can't open file 'C:\Users\User\PycharmProjects\main_1\face_detect.py': [Errno 2] No such file or directory

(venv) C:\Users\User\PycharmProjects\main_1>python main2.py abba.png haarcascade_frontalface_default.xml
Traceback (most recent call last):
  File "C:\Users\User\PycharmProjects\main_1\main2.py", line 13, in <module>
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-95hbg2jt\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src
.empty() in function 'cv::cvtColor'

下面是我使用的代码:

代码语言:javascript
运行
复制
import sys
import cv2

# Get user supplied values
imagePath = sys.argv[1]
cascPath = sys.argv[2]

# Create the haar cascade
faceCascade = cv2.CascadeClassifier(cascPath)

# Read the image
image = cv2.imread(imagePath)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# Detect faces in the image
faces = faceCascade.detectMultiScale(
    gray,
    scaleFactor=1.1,
    minNeighbors=5,
    minSize=(30, 30),
    flags=cv2.cv.CV_HAAR_SCALE_IMAGE
)

print("Found {0} faces!".format(len(faces)))

# Draw a rectangle around the faces
for (x, y, w, h) in faces:
    cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)

cv2.imshow("Faces found", image)
cv2.waitKey(0)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-15 18:52:59

此错误表示未正确找到图像文件:

代码语言:javascript
运行
复制
C:\Users\User\AppData\Local\Programs\Python\Python39\python.exe: can't open file 'C:\Users\User\PycharmProjects\main_1\face_detect.py': [Errno 2] No such file or directory

因此它不能使用opencv转换不是有效文件的东西(图像)的颜色。

代码语言:javascript
运行
复制
File "C:\Users\User\PycharmProjects\main_1\main2.py", line 13, in <module>
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-95hbg2jt\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src
.empty() in function 'cv::cvtColor'

因此,请检查您的文件夹是否包含要使用的文件,在本例中为: abba.png。

使用命令unix可以列出使用windows cmd的目录中的所有目录和文件;ls是一个dir命令。

票数 1
EN

Stack Overflow用户

发布于 2020-12-15 23:30:28

您可以在deepface中应用人脸检测。它包装了几个人脸检测器。在这里,mtcnn是最健壮但最慢的。ssd是最快的。框架将在后台下载所需的依赖项。

代码语言:javascript
运行
复制
#!pip install deepface
from deepface import DeepFace
detectors = ['opencv', 'ssd', 'mtcnn', 'dlib']
img = DeepFace.detectFace("img.jpg", detector_backend = detectors[0])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65304369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档