我有一些OpenCV python代码来捕获图像并将其保存到磁盘。当我从cmd或PowerShell运行它时,此代码工作正常它工作正常。但是当我从PHP运行它时,它运行但不能正常工作。 这是我的python代码:
import cv2, sys, json
import numpy as np
faceDetect = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
cam = cv2.VideoCapture(0)
Id = 1
i = 1
while (True):
ret, img = cam.read()
grayImg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = faceDetect.detectMultiScale(grayImg, 1.3, 5)
for (x, y, w, h) in faces:
cv2.imwrite("dataset/user_" + str(Id) + "_" + str(i) + ".jpg", grayImg[y : y + h, x : x + w])
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
i += 1
cv2.waitKey(100)
cv2.imshow("Camera", img)
cv2.waitKey(1)
if (i > 20):
break
cam.release()
cv2.destroyAllWindows()
这是我的PHP代码:
<?php
exec('C:\\Python27\\python.exe C:\\xampp\\htdocs\\atmp\\face_recognition\\dataset_creator.py');
?>
有什么特别的理由不能正常工作吗?任何答案将不胜感激。在此先感谢:)
答案 0 :(得分:1)
你应该说出了什么问题。但我敢打赌它是
faceDetect = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
不运行。当您使用相对路径时,它将尝试在当前目录中搜索xml
文件。
另一件可能出错的事是
cv2.imwrite("dataset/user_" + str(Id) + "_" + str(i) + ".jpg", grayImg[y : y + h, x : x + w])
如果php / web用户没有写入权限,它将失败。但我想在Windows上应该没问题。