我正在尝试使用cv2在python-3.6中学习人脸检测。
我遵循一本书中给出的src。
我已经通过pip安装了opencv-python(3.2.0)
.xml和.jpg文件都与python代码位于同一路径中。
from numpy import *
import cv2
face_cascade = cv2.CascadeClassifier("D:\\Python\\FaceDetec\\lbpcascade_frontalface.xml")
img = cv2.imread("z1.jpg")
gary = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.2, 3)
for(x, y, w, h) in faces:
img2 = cv2.rectangle(img, (x, y), (x+w, y+h), (255, 255, 255), 2)
roi_gray = gray[y:y+h, x:x+w]
roi_color = img[y:y+h, x:x+w]
cv2.imshow("img", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imwrite("z1.head.jpg", img)
Run Code Online (Sandbox Code Playgroud)
我遇到一个找不到的错误。
OpenCV Error: Unknown error code -49 (Input file is empty) in cvOpenFileStorage, file D:\Build\OpenCV\opencv-3.2.0\modules\core\src\persistence.cpp, l
ine 4422
Traceback (most recent call last):
File "d:\Python\FaceDetec\Harr_cascade.py", line 6, in <module>
face_cascade = cv2.CascadeClassifier("D:\\Python\\FaceDetec\\lbpcascade_frontalface.xml")
cv2.error: D:\Build\OpenCV\opencv-3.2.0\modules\core\src\persistence.cpp:4422: error: (-49) Input file is empty in function cvOpenFileStorage
Run Code Online (Sandbox Code Playgroud)
请帮助我。谢谢。
小智 0
您应该在关闭窗口之前保存图像。并将“gary”修复为“gray”。像这样改变你的代码。
from numpy import *
import cv2
face_cascade = cv2.CascadeClassifier("D:\\Python\\FaceDetec\\lbpcascade_frontalface.xml")
img = cv2.imread("z1.jpg")
gray= cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.2, 3)
for(x, y, w, h) in faces:
img2 = cv2.rectangle(img, (x, y), (x+w, y+h), (255, 255, 255), 2)
roi_gray = gray[y:y+h, x:x+w]
roi_color = img[y:y+h, x:x+w]
cv2.imshow("img", img)
cv2.imwrite("z1.head.jpg", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4150 次 |
最近记录: |