PHP opencv解析错误:语法错误,意外';{';,

PHP opencv解析错误:语法错误,意外';{';,,php,opencv,pdo,Php,Opencv,Pdo,我下载了php opencv库,但出现以下错误: [08-Dec-2020 19:31:29 Europe/Istanbul]PHP致命错误:未捕获错误:在/home/yusufkar/opencv.yusufkarakaya.com.tr/detect_objects_by_dnn_mobilenet.PHP中调用未定义的函数CV\imread():11 堆栈跟踪: #0{main} 第11行的/home/yusufkar/opencv.yusufkarakaya.com.tr/detect\

我下载了php opencv库,但出现以下错误:

[08-Dec-2020 19:31:29 Europe/Istanbul]PHP致命错误:未捕获错误:在/home/yusufkar/opencv.yusufkarakaya.com.tr/detect_objects_by_dnn_mobilenet.PHP中调用未定义的函数CV\imread():11 堆栈跟踪: #0{main} 第11行的/home/yusufkar/opencv.yusufkarakaya.com.tr/detect\u objects\u由\u dnn\u mobilenet.php抛出

php文件

<?php

use CV\Scalar;
use function CV\imread;
use function CV\cvtColor;

//$categories = explode("\n", file_get_contents('models/ssd_mobilenet_v1_coco/classes.txt'));
$categories = explode("\n", file_get_contents('models/ssdlite_mobilenet_v2_coco/classes.txt'));

$src = imread("images/objects.jpg"); // opencv loads image to matrix with BGR order
//var_export($src);

$blob = \CV\DNN\blobFromImage($src, 0.017, new \CV\Size(300,300), new Scalar(127.5, 127.5, 127.5), true, false); // convert image to 4 dimensions matrix
//var_export($blob);

//$net = \CV\DNN\readNetFromTensorflow('models/ssd_mobilenet_v2_coco/frozen_inference_graph.pb', 'models/ssd_mobilenet_v2_coco/ssd_mobilenet_v2_coco.pbtxt');
//$net = \CV\DNN\readNetFromTensorflow('models/ssd_mobilenet_v1_coco/frozen_inference_graph.pb', 'models/ssd_mobilenet_v1_coco/ssd_mobilenet_v1_coco.pbtxt');
$net = \CV\DNN\readNetFromTensorflow('models/ssdlite_mobilenet_v2_coco/frozen_inference_graph.pb', 'models/ssdlite_mobilenet_v2_coco/ssdlite_mobilenet_v2_coco.pbtxt');
$net->setInput($blob, "");

$r = $net->forward();
var_export($r);

$rectangles = [];
for ($i = 0; $i < $r->shape[2]; $i++) {
    $classId = $r->atIdx([0,0,$i,1]);
    $confidence = intval($r->atIdx([0,0,$i,2]) * 100);
    if ($classId && $confidence > 30) {
        $startX = $r->atIdx([0,0,$i,3]) * $src->cols;
        $startY = $r->atIdx([0,0,$i,4]) * $src->rows;
        $endX = $r->atIdx([0,0,$i,5]) * $src->cols;
        $endY = $r->atIdx([0,0,$i,6]) * $src->rows;

        $scalar = new Scalar(0, 0, 255);
        \CV\rectangle($src, $startX, $startY, $endX, $endY, $scalar, 2);

        $text = "{$categories[$classId]} $confidence%";
        \CV\rectangle($src, $startX, $startY + 10, $startX + 20 * strlen($text), $startY - 30, new Scalar(255,255,255), -2);
        \CV\putText($src, "{$categories[$classId]} $confidence%", new \CV\Point($startX, $startY - 2), 0, 1.5, new Scalar(), 2);
    }
}

\CV\imwrite("results/_detect_objects_by_dnn_mobilenet.png", $src);

仅在PHP 7.0之后才允许使用分组使用声明

请确保您使用的PHP至少是7.0版,否则将导致此错误,原因是
使用函数CV\{imread,cvtColor};

尝试将使用声明拆分为多个

使用函数CV\imread;
使用函数CV\CVT颜色;

您使用的是什么版本的PHP?我认为值得一读。错误在PHP版本上重复。PHP版本:7.4。给出此错误;[08-Dec-2020 19:28:41 Europe/Istanbul]PHP致命错误:未捕获错误:调用未定义的函数CV\imread()在/home/yusufkar/opencv.yusufkarakaya.com.tr/detect_objects_by_dnn_mobilenet.php:11堆栈跟踪:#0{main}第11行的/home/yusufkar/opencv.yusufkarakaya.com.tr/detect_objects_by_dnn_mobilenet.php中出现了一个不同的错误,可能是您的名称空间不正确或与自动加载相关。对于这个新错误,您应该打开一个新问题(并恢复对这个问题的编辑,以便答案有意义)