python - 错误:函数 'detectMultiScale' 中的 !empty()
问题描述
我有以下小代码:
from google.colab import drive
from IPython.display import display
import PIL
from PIL import Image, ImageDraw
import kraken
from kraken import pageseg
import cv2 as cv
img = Image.open("/content/drive/My Drive/images/dropfire.jpg")
face_cascade = cv.CascadeClassifier(cv.data.haarcascades + "/content/drive/My Drive/datas/haarcascade_frontalface_default.xml")
eye_cascade = cv.CascadeClassifier(cv.data.haarcascades + "/content/drive/My Drive/datas/haarcascade_eye.xml")
file_name = "/content/drive/My Drive/images/dropfire.jpg"
img = cv.imread(file_name)
pil_img = Image.open(file_name)
cv_img = pil_img.convert('L')
cv_img = cv.imread(file_name)
faces = face_cascade.detectMultiScale(cv_img)
当我运行最后一个单元格(带有faces
)时,它会引发:
error Traceback (most recent call last)
<ipython-input-23-2bd7582f8a20> in <module>()
----> 1 faces = face_cascade.detectMultiScale(cv_img)
error: OpenCV(4.1.2) /io/opencv/modules/objdetect/src/cascadedetect.cpp:1689: error: (-215:Assertion failed) !empty() in function 'detectMultiScale'
直到这个单元格一切正常。根据 Stack Overflow 的回答,我cv.data.haarcascades +
在括号中添加了cv.CascadeClassifier
. 尽管人们说这对他们有用,但不知何故对我不起作用。
解决方案
问题是检查XML是否加载,用于
eye_cascade.empty()
检查它是否加载。
推荐阅读
- snakemake - 在snakemake中链式动态输入/输出规则
- reinforcement-learning - 倒立摆:基于模型还是无模型?
- python - Python 使用 __new__ 创建字典并为每个键添加一个属性
- wildfly - 从 Elytron 凭证库以编程方式访问密码
- c# - Azure B2C - 无法触发 OnAuthorizationCodeReceived
- ios - 音频通话中缺少用户信息
- django - Elastic Beanstalk 上的 Celery + Django 导致错误:
, - c++11 - 模板类层次结构的对象工厂注册
- sql - 如何使用 isnull 东西从 2 个不同的表中获取逗号分隔的 SQL 值
- apache-kafka - 在 docker swarm 中使用 Kafka 的服务的蓝/绿部署