2013-09-25 63 views
1

有沒有人在這裏處理過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"); 
    } 
} 
+0

這個庫是3歲? –

+0

葉,但自2013-04-19更新 – dervish

回答

1

什麼是浪費時間! 這個庫是不完整的,我可以編譯它,經過艱難的調試,OCR,非常重要的部分,被刪除! 我不建議任何人放棄他的能量。

1

查看OpenALPR(http://www.openalpr.com)。它是一個用C++編寫的完整的開源車牌識別庫。編譯也相當簡單。