node-openalpr в Raspberry Pi 3 компилируется, но не идентифицирует изображения пластин

Я работаю над проектом с openalpr и raspberry pi 3 с node.js.

Я уже скомпилировал OpenAlpr и работает из командной строки, теперь я пытаюсь распознать номерной знак по изображению с помощью модуля node-openalpr и найти следующие результаты:

Запустил программу как root:

pi@raspberrypi:~/nodeopenalpr $ sudo node index.js
Before Start.
Start:  true
Before getting version
version:  2.2.4
Before loop:  0
Before IdentifyLicense Execution
pi@raspberrypi:~/nodeopenalpr $

Запустил программу как текущий пользователь:

pi@raspberrypi:~/nodeopenalpr $ node index.js
Before Start.
Start:  true
Before getting version
version:  2.2.4
Before loop:  0
Before IdentifyLicense Execution
working
exception in identify method:  ReferenceError: identifyResult is not defined
    at identify (/home/pi/nodeopenalpr/index.js:19:38)
    at Object.<anonymous> (/home/pi/nodeopenalpr/index.js:36:3)
    at Module._compile (module.js:541:32)
    at Object.Module._extensions..js (module.js:550:10)
    at Module.load (module.js:458:32)
    at tryModuleLoad (module.js:417:12)
    at Function.Module._load (module.js:409:3)
    at Function.Module.runMain (module.js:575:10)
    at startup (node.js:160:18)
    at node.js:456:3
After loop:  0
Before loop:  1
Before IdentifyLicense Execution
Segmentation fault
pi@raspberrypi:~/nodeopenalpr $

Используемая версия программного обеспечения выглядит следующим образом:

  • OpenAlpr (v2.2.4 скомпилирован самым сложным образом)
  • Node.js (v6.2.1)
  • нпм (v3.9.3)

Это код, который я запускаю:

        // statements
var openalpr = require ("node-openalpr");
//console.log("OPENALPR: ", openalpr);

function identify (id, path) {
    try {
        // statements
        console.log("Before IdentifyLicense Execution");
        console.log(openalpr.IdentifyLicense (path, function (error, output) {
            console.log("Finish IdentifyLicense. Output: ", output);
            console.log("Finish IdentifyLicense. Error: ", error);
            var results = output.results;
            console.log (id +" "+ output.processing_time_ms +" "+ ((results.length > 0) ? results[0].plate : "No results"));

            if (id == 349) {
                console.log (openalpr.Stop ());
            }
        }));
        console.log("After plate identification: ", openalpr);
    } catch(e) {
        // statements
        console.log("exception in identify method: ", e);
    }
}

try {
    console.log("Before Start.");
    console.log("Start: ", openalpr.Start ("/usr/local/share/openalpr/config/openalpr.defaults.conf", "/usr/local/share/openalpr/runtime_data", 4,true));

    console.log("Before getting version");
    console.log("version: ", openalpr.GetVersion ());

    for (var i = 0; i < 350; i++) {
        console.log("Before loop: ", i);
        identify (i, "/home/pi/nodeopenalpr/lp.jpg");
        console.log("After loop: ", i);
    }
} catch(e) {
    // statements
    console.log("Exception captured: ", e);
}

Я пытаюсь понять это несколько раз. Я буду очень благодарен за помощь.

Эктор

0 ответов

Другие вопросы по тегам