繁体   English   中英

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

[英]PHP opencv Parse error: syntax error, unexpected '{',

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

[08-Dec-2020 19:31:29 Europe/Istanbul] PHP Fatal error: Uncaught Error: Call to undefined function CV\imread() in /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 中抛出

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);

Github php opencv: Z5E056C500A1C4B6A7110B50D807/ php-open-cvexample.

仅自 PHP 7.0 起才允许分组使用声明

确保您使用的是 PHP 的至少 7.0 版本,任何低于此版本的内容都会给您由于use function CV\{imread, cvtColor};

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM