日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt 车牌识别 (EasyPR)

發(fā)布時(shí)間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt 车牌识别 (EasyPR) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

EasyPR

  • 下載
  • 直接把源碼加到.pri文件中
  • 安裝/直接解壓 opencv-3.2.0-vc14.exe
  • 使用
  • 最終效果
  • Qt 車牌識(shí)別 (HyperLPR)

開發(fā)環(huán)境:win10 + Qt5.12.1 + vs2015_x64

下載

EasyPR源碼下載鏈接:https://github.com/liuruoze/EasyPR
筆者下載的v1.6版本 (這個(gè)庫最后維護(hù)是2018年好像)
因?yàn)闆]有訓(xùn)練綠牌,所以無法識(shí)別,需要自己訓(xùn)練,它提供了訓(xùn)練函數(shù)
如何添加綠牌:https://blog.csdn.net/h593245631/article/details/107185418

直接把源碼加到.pri文件中

安裝/直接解壓 opencv-3.2.0-vc14.exe

下載:https://nchc.dl.sourceforge.net/project/opencvlibrary/opencv-win/3.2.0/opencv-3.2.0-vc14.exe

使用

void EasyPRThread::run() {setResult(0);switch (threadType()) {case 0://initinit();break;case 1:{QImage image;QString tag;extractFacialFeatures(getFilePath(),image,tag);setImage(image);setTag(tag);}break;case 2:{easypr::SvmTrain svm("tmp/train/svm", "tmp/train/svm.xml");svm.train();}break;case 3:{easypr::AnnTrain ann("tmp/train/ann", "tmp/train/ann.xml");ann.train();}break;case 4:{int sameCount = 0;int errorCount = 0;for(int i=0; i<_filePaths.size(); ++i){QImage image;QString tag;extractFacialFeatures(_filePaths.at(i),image,tag);setImage(image);setTag(tag);QFileInfo fileInfo(_filePaths.at(i));if(fileInfo.completeBaseName() == tag){++sameCount;}else{++errorCount;}}QString str = QString("%1:%2 %3:%4 %5:%6 %7:%8").arg(QStringLiteral("共")).arg(_filePaths.size()).arg(QStringLiteral("正確")).arg(sameCount).arg(QStringLiteral("錯(cuò)誤")).arg(errorCount).arg(QStringLiteral("識(shí)別率")).arg(sameCount*1.0/_filePaths.size());SCDebug<<str;emit sigTextEdit(str);}break;default:break;} } bool EasyPRThread::extractFacialFeatures(const QString &filePath,QImage &image,QString &tag) {image.load(filePath);int result = 0;// cv::Mat src = imread(filePath.toLocal8Bit().toStdString());// // 切割車牌圖片// vector<CPlate> resultVec;// CPlateDetect pd;// pd.setPDLifemode(true);// result = pd.plateDetect(src, resultVec);// size_t num = resultVec.size();// SCDebug<<"result:"<<result<<num;// for (size_t j = 0; j < num; j++) {// CPlate resultMat = resultVec[j];// std::string license = resultMat.getPlateStr();// QString lice1 = QString::fromLocal8Bit(license.c_str());// SCDebug<<"j:"<<lice1;// imshow("plate_detect", resultMat.getPlateMat());// waitKey(0);// }CPlateRecognize pr;//CMER代表文字定位方法,SOBEL和COLOR分別代表邊緣和顏色定位方法。可以通過"|"符號(hào)結(jié)合// pr.setDetectType(PR_DETECT_SOBEL);// pr.setDetectType(PR_DETECT_CMSER);// pr.setDetectType(PR_DETECT_COLOR);// pr.setDetectType(PR_DETECT_CMSER | PR_DETECT_COLOR);pr.setDetectType(PR_DETECT_COLOR | PR_DETECT_SOBEL | PR_DETECT_CMSER);//開啟生活模式,這個(gè)屬性在定位方法為SOBEL時(shí)可以發(fā)揮作用,能增大搜索范圍,提高魯棒性。pr.setLifemode(true);// //設(shè)置EasyPR最多查找多少個(gè)車牌。當(dāng)一副圖中有大于n個(gè)車牌時(shí),EasyPR最終只會(huì)輸出可能性最高的n個(gè)。pr.setMaxPlates(1);std::vector<CPlate>plateVec;cv::Mat src = imread(filePath.toLocal8Bit().toStdString());pr.setResultShow(false);result = pr.plateRecognize(src,plateVec);SCDebug<<"result:"<<result<<plateVec.size();// pr.getResultShow();QPainter painter(&image);for(int i=0; i<plateVec.size(); ++i){CPlate plate = plateVec.at(i);//plateMat代表車牌圖像,rrect代表車牌的可旋轉(zhuǎn)矩形位置,license代表車牌字符串,例如“藍(lán)牌:蘇EUK722”。// Mat plateMat = plate.getPlateMat();RotatedRect rrect = plate.getPlatePos();painter.setPen(QPen(Qt::magenta, 2, Qt::DashDotLine));painter.drawRect(rrect.boundingRect().x,rrect.boundingRect().y,rrect.boundingRect().width,rrect.boundingRect().height);std::string license = plate.getPlateStr();QString lice1 = QString::fromLocal8Bit(license.data());lice1 = getLicensePlateType(lice1,tag);qDebug()<<i<<"revStr:"<<lice1;emit sigTextEdit(lice1);}return true; }

最終效果

測(cè)試它源碼中自帶的 general_test 文件夾中的車牌圖片識(shí)別率只有:0.47(47%)


Qt 車牌識(shí)別 (HyperLPR)

https://blog.csdn.net/u012020854/article/details/111202952

總結(jié)

以上是生活随笔為你收集整理的Qt 车牌识别 (EasyPR)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。