从PHP运行Python openCV代码并没有正常工作

时间:2017-04-21 03:21:08

标签: php python opencv

我有一些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');
?>

有什么特别的理由不能正常工作吗?任何答案将不胜感激。在此先感谢:)

1 个答案:

答案 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上应该没问题。