Запуск кода Python openCV из PHP не работает должным образом

У меня есть немного кода Python OpenCV для захвата изображений и сохранения его на диск. Этот код работает нормально, когда я запускаю его из 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

Решение

Вы должны сказать, что пошло не так. Бьюсь об заклад, это

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.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]