Библиотека недокументированных библиотек libanpr для распознавания автомобильных номеров
Кто-нибудь здесь имел дело с libanpr? это библиотека для автоматического распознавания номера автомобиля. Я пытался скомпилировать его, но у меня было много ошибок, которые я не могу их исправить. Я не нашел ни одной страницы документации! кто-нибудь может помочь?
Отредактировано:
Решение.
Я не мог скомпилировать его под Linux, но под Windows я сделал. Теперь моя проблема в том, что нет ни документации, ни обсуждения об этой библиотеке! Я попробовал следующий код, но после его выполнения происходит сбой, когда при отладке (шаг за шагом) код работает, но я не могу работать с этим способом, чтобы получить результаты. Я не могу манипулировать кодом, потому что мы понятия не имеем ни о классе, ни о какой-либо функции!!
Есть ли кто-то заинтересованный, чтобы поделиться мной, чтобы найти решение??
#include "../source/AvcodecImgSrc.h"
#include "../locate/CarLocate.h"
#include "../plate/PlateCut.h"
#include "../ocr/PlateOcr.h"
#include "../exception/Exception.h"
static void show(const std::vector<OcrData>& plates) {
for (int i=0;i<plates.size();i++)
printf("%s\n", plates[i].getPlate().c_str());
}
int main(int argc, const char* argv[]) {
try {
AvcodecImgSrc src(argv[1], 400, 3450);
CarLocate car(2048/4, 1536/4, 8, 5);
PlateCut plate;
PlateOcr ocr;
while (src.hasNext()) {
NTCImg img = src.next();
int w = img.dimx();
int h = img.dimy();
int w2 = w/2;
int h2 = h/2;
NTCImg img2 = img.getScale(w2, h2);
int w4 = w/4;
int h4 = h/4;
NTCImg img4g = img.getScaleG(w4, h4);
std::vector<CarData> cars = car.locate(img4g);
for (int i=0;i<cars.size();i++) {
printf("CAR[%dx%d]!\n", cars[i].getRect().getWidth(), cars[i].getRect().getHeight());
}
std::vector<PlateData> plates = plate.cut(img2, CarData::scale2(cars));
for (int i=0;i<plates.size();i++) {
printf("PLATE[%dx%d]!\n", plates[i].getRect().getWidth(), plates[i].getRect().getHeight());
}
//show(ocr.run(plate.cut(cars)));
}
} catch (const Exception& ex) {
printf("Exception: %s\n", ex.getMsg().c_str());
} catch (const Err& err) {
printf("Err!\n");
}
}
2 ответа
Что за трата времени! эта библиотека не полная, я могу ее скомпилировать, после сложной отладки, OCR, очень важная часть, удалена!! Я не предлагаю никому терять его энергию с этим.
Проверьте OpenALPR ( http://www.openalpr.com/). Это полная библиотека распознавания номерных знаков с открытым исходным кодом, написанная на C++. Компиляция также довольно проста.