C ++ — Exe работает из командной строки, но не из переполнения стека

У меня есть исполняемый файл C ++, который принимает путь изображения в качестве входных данных и выполняет некоторую обработку изображений во входном изображении с использованием opencv. Когда я пытаюсь запустить исполняемый файл из командной строки, он выдает результат. Но когда я пытаюсь запустить его из php, используя приведенный ниже код, он вылетает и выдает ошибку, как показано ниже.

<?php
$date1 = new DateTime("now");

$name="/var/www/html/FailedBag2.jpg";
$addr="/var/www/html/BagsFeature '$name'";
exec($addr,$data);
var_dump($data);
$date2 = new DateTime("now");
$interval = date_diff($date1, $date2);
echo "Time Taken to Generate Feature in seconds : ".$interval ->format('%s');
?>

Ошибка, которую я получаю:

OpenCV Error: Assertion failed (m.dims >= 2) in Mat, file /var/www/html/opencvpencv-2.4.5/modules/core/src/matrix.cpp, line 269
terminate called after throwing an instance of 'cv::Exception'
what():  /var/www/html/opencv/opencv-2.4.5/modules/core/src/matrix.cpp:269: ror: (-215) m.dims >= 2 in function Mat

Aborted (core dumped)
array(0) {
}

Из командной строки я запускаю exe:

cd /var/www/html

./BagsFeature /var/www/html/FailedBag2.jpg

Если бы в коде была какая-то проблема, он бы тоже зависал в командной строке, но он работал гладко в командной строке, но падал только в том случае, если мы вызываем его из php. Есть ли разница при вызове исполняемого файла из php с использованием exec и вызове из командной строки сам? Как я могу решить эту проблему?

Еще одна путаница, если я вызываю тот же исполняемый файл с тем же разбитым образом и тем же php-кодом с другой машины, на которой он работает. Это как-то связано с настройками php? И эта проблема только в нескольких изображениях, большинство изображений запускаются из php.

0

Решение

Задача ещё не решена.

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

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

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