在这里我发现一个错误后,更新它的脸到img.错误说:
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
0 549 374
1 518 362
2 487 351
3 462 353
4 449 359
5 469 318
6 428 348
7 438 367
8 453 371
9 473 321
10 434 363
11 447 382
12 463 387
13 479 334
14 443 377
15 456 396
16 471 402
17 487 352
18 457 385
19 458 402
20 463 413
Traceback (most recent call last):
File "/home/maruf/Documents/python/opencv/YouTube/Hand Tracking/basic.py", line 35, in <module>
faceDetails = img.detectMultiScale(
AttributeError: 'numpy.ndarray' object has no attribute 'detectMultiScale'
Process finished with exit code 1
这是我这部分的源代码:
col = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faceDetails = img.detectMultiScale(
col,
scaleFactor=1.1,
minNeighbors=5,
minSize=(30, 30),
flags=cv2.CASCADE_SCALE_IMAGE
)
for (x, y, w, h) in faceDetails:
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
为什么它说错误...“numpy.ndarray”对象没有属性“detectMultiScale”
1条答案
按热度按时间wljmcqd81#
detectMultiScale
确实不是numpy.ndarray
的方法,而numpy.ndarray
显然是img
对象的类型。detectMultiScale
实际上是opencvCascadeClassifier
类的一个方法。请参阅此处的文档:
detectMultiScale
.您的
img
应该作为detectMultiScale
的第一个参数传递(您可以在文档链接中看到其他可选参数)。CascadeClassifier
对象,您必须从模型文件加载分类器数据。上面的链接提供了一个c++的例子。我相信快速搜索一下就会给你一个python的例子。