亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

android端使用openCV實現車牌檢測

2019-10-21 21:32:55
字體:
來源:轉載
供稿:網友

現在,汽車的蹤影無處不在,公路上疾馳,大街邊臨停,小區中停靠,車庫里停泊。管理監控如此龐大數量的汽車是個頭疼的問題。精明的人們把目光放在車牌上,因為車牌是汽車的“身份證”。所以車牌識別成為了焦點,而車牌檢測是車牌識別的基礎和前提。本篇文章,主要討論使用openCV實現車牌檢測。

openCV是開源計算機視覺庫,基于計算機視覺與機器學習,提供強大的圖像處理能力。我們可以快速集成openCV庫到android端,其中一種方式是直接安裝openCV Manager,按需使用:啟動服務去動態加載。這樣前期配置更簡單,但需要另外安裝一個APK。我更傾向另外一種方式:把依賴的module和動態/靜態庫都導入Project。具體步驟如下:

1、導入module

先從官網下載openCVForAndroid的sdk,以3.2.0版本為例,找到依賴庫路徑,然后導入module。

2、導入動態與靜態庫

在sdk里面找到lib目錄,把所有的.a和.so文件拷貝到項目的libs對應ABI路徑下:

android,openCV,車牌檢測

3、配置gradle

將依賴的靜態庫編譯到native-libs里面:

task nativeLibsToJar(type: Jar, description: 'create a jar archive of the native libs') { destinationDir file("$buildDir/native-libs") baseName 'native-libs' from fileTree(dir: 'libs', include: '**/*.so') into 'lib/'}tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn(nativeLibsToJar)} dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile fileTree(dir: "$buildDir/native-libs", include: 'native-libs.jar') ......}

 好了,經過配置三步曲,我們就可以愉快地使用openCV了。

------------------------中場休息---------------------------

接下來是調用三步曲:加載openCV、初始化車牌檢測器和執行車牌檢測

1、加載openCV

調用openCVLoader去加載,如果加載成功進行下一步操作:

private void initOpenCV(){ boolean result = OpenCVLoader.initDebug(); if(result){  Log.i(TAG, "initOpenCV success...");  //初始化車牌檢測器  mPlateDetector = new ObjectDetector(this, R.raw.haarcascade_license_plate,   3, new Scalar(255, 0, 0, 0));  mObject = new MatOfRect(); }else {  Log.e(TAG, "initOpenCV fail..."); } }

2、初始化檢測器

使用車牌檢測的級聯分類xml文件進行初始化:

/** * 創建級聯分類器 * @param context 上下文 * @param id 級聯分類器ID * @return 級聯分類器 */ private CascadeClassifier createDetector(Context context, int id) { CascadeClassifier javaDetector; InputStream is = null; FileOutputStream os = null; try {  is = context.getResources().openRawResource(id);  File cascadeDir = context.getDir(LICENSE_PLATE_MODEL, Context.MODE_PRIVATE);  File cascadeFile = new File(cascadeDir, id + ".xml");  os = new FileOutputStream(cascadeFile);   byte[] buffer = new byte[4096];  int bytesRead;  while ((bytesRead = is.read(buffer)) != -1) {  os.write(buffer, 0, bytesRead);  }   javaDetector = new CascadeClassifier(cascadeFile.getAbsolutePath());  if (javaDetector.empty()) {  javaDetector = null;  }   boolean delete = cascadeDir.delete();  Log.i("ObjectDetector", "deleteResult=" + delete);  return javaDetector; } catch (IOException e) {  e.printStackTrace();  return null; } finally {  try {  if (null != is) {   is.close();  }  if (null != os) {   os.close();  }  } catch (IOException e) {  e.printStackTrace();  } } }

3、執行車牌檢測

由于openCV操作對象是Mat,所以我們得把Bitmap轉成Mat,然后轉成Gray灰度圖去進行檢測:

/** * 執行車牌檢測 * @param bitmap bitmap * @return 車牌檢測后的bitmap */ private Bitmap doPlateDetecting(Bitmap bitmap){ if(mPlateDetector != null && bitmap != null){  Mat mRgba = new Mat();  Mat mGray = new Mat();  //bitmap轉成map  Utils.bitmapToMat(bitmap, mRgba);  //rgba轉成灰度圖  Imgproc.cvtColor(mRgba, mGray, Imgproc.COLOR_RGBA2GRAY);  // 檢測車牌  Rect[] object = mPlateDetector.detectObject(mGray, mObject);  if(object != null && object.length > 0){  //檢測到車牌區域  Rect rect = object[0];  //矩形標識  Imgproc.rectangle(mRgba, rect.tl(), rect.br(), mPlateDetector.getRectColor(), 3);  }  //mat轉回bitmap  Utils.matToBitmap(mRgba, bitmap); } return bitmap; }

其中,detectObject方法體是調用cascadeClassifier的detectMultiScale來完成檢測的:

public Rect[] detectObject(Mat gray, MatOfRect object) { mCascadeClassifier.detectMultiScale(  gray, // 要檢查的灰度圖像  object, // 檢測到的車牌  1.1, // 表示在前后兩次相繼的掃描中,搜索窗口的比例系數  mMinNeighbors, // 默認是3  Objdetect.CASCADE_SCALE_IMAGE,  getSize(gray, 80), // 檢測目標最小值  getSize(gray, 800)); // 檢測目標最大值  return object.toArray(); }

折騰了這么久,讓我們看看車牌檢測結果:

android,openCV,車牌檢測

上面的車牌幾乎是水平的,那么傾斜的車牌能不能檢測到呢?真相就在下面:

android,openCV,車牌檢測

角度發生傾斜的車牌也是可以檢測出來,但是在后期的車牌識別,需要進行傾斜校正。如果靜態檢測還不夠意思,那么請看動態檢測的效果(轉換出來的gif有點模糊,各位莫怪):

android,openCV,車牌檢測

接下來的一篇博客會與大家一起探討車牌識別,敬請期待。歡迎各位熱愛openCV與圖像處理的朋友提出建議,相互學習。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美极品xxxx| 欧美日韩一区二区免费视频| 欧美日韩美女视频| 668精品在线视频| 国产精品爽黄69天堂a| 欧美高清视频在线播放| 国产精品十八以下禁看| 久久av红桃一区二区小说| 精品中文字幕视频| 亚洲欧美另类在线观看| 色www亚洲国产张柏芝| 亚洲国产精品久久久久秋霞不卡| 日韩在线小视频| 国产精品大片wwwwww| 国产成+人+综合+亚洲欧洲| 国产精品美女www爽爽爽视频| 成人高h视频在线| 国产精品流白浆视频| 久久精品久久久久电影| 精品国产福利在线| 九九综合九九综合| 91国产精品视频在线| 成人激情在线播放| 欧美性猛交99久久久久99按摩| 亚洲男人天堂九九视频| 色综久久综合桃花网| 欧美裸体xxxx| 国产成人av在线播放| 欧美一区视频在线| 国产精品三级久久久久久电影| 狠狠躁夜夜躁人人爽超碰91| 国产精品成人品| 日韩av影院在线观看| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲精品国产精品乱码不99按摩| 欧美精品日韩三级| 亚洲高清久久网| 国产日产亚洲精品| 日韩av网址在线观看| 成人妇女淫片aaaa视频| 亚洲综合中文字幕在线观看| 黑人巨大精品欧美一区二区免费| 久久视频这里只有精品| 中文字幕亚洲天堂| 不用播放器成人网| 日本一区二区不卡| 亚洲精品国产精品国自产观看浪潮| 色中色综合影院手机版在线观看| 亚洲男人的天堂在线播放| 久久福利网址导航| 精品欧美激情精品一区| 国产精品视频白浆免费视频| 一区二区三区日韩在线| 96精品视频在线| 欧美日韩黄色大片| 国产美女精品视频免费观看| 欧美精品制服第一页| 在线观看日韩www视频免费| 亚洲欧美精品在线| 国产精品h片在线播放| 91久久久久久久久久久| 国产精品日韩欧美大师| 岛国视频午夜一区免费在线观看| 日韩激情av在线播放| 伦伦影院午夜日韩欧美限制| 亚洲最新中文字幕| 国外色69视频在线观看| 98精品国产自产在线观看| 国产精品99免视看9| 久久天天躁狠狠躁夜夜av| 国产ts一区二区| 在线电影av不卡网址| 欧美激情一区二区三区在线视频观看| 欧美日韩一区二区三区在线免费观看| 久久人人爽人人爽人人片亚洲| 国产精品免费久久久久影院| 日韩女优在线播放| 国产欧美最新羞羞视频在线观看| 欧美在线www| 亲爱的老师9免费观看全集电视剧| 精品久久久久久久久久ntr影视| 日韩中文字幕精品视频| 欧美日韩激情视频8区| 日韩免费观看在线观看| 欧美大片在线看免费观看| 国产欧美一区二区三区在线看| 日韩一区二区精品视频| 国产情人节一区| 一本色道久久综合亚洲精品小说| 亚洲男人av在线| 欧美国产日韩一区| 国产精品视频中文字幕91| 日韩有码在线视频| 欧美大成色www永久网站婷| 51午夜精品视频| 亚洲人高潮女人毛茸茸| 欧美成人精品影院| 午夜美女久久久久爽久久| 久久久久免费精品国产| 日韩激情视频在线| www.日韩不卡电影av| 国产欧美久久久久久| 亚洲成人黄色在线观看| 青青久久av北条麻妃黑人| 精品久久久久久亚洲国产300| 国产成人中文字幕| 欧美性猛交丰臀xxxxx网站| 欧美电影电视剧在线观看| 国产情人节一区| 久久免费观看视频| 亚洲最大av在线| 激情久久av一区av二区av三区| 91精品国产91久久久久久| 国产精品日韩在线播放| 日韩精品视频观看| 久久精品人人做人人爽| 亚洲一区美女视频在线观看免费| 热门国产精品亚洲第一区在线| 国产美女精品视频免费观看| 久久精品国产综合| 欧美日韩爱爱视频| 粉嫩av一区二区三区免费野| 欧美午夜电影在线| 亚洲视频欧美视频| 日韩亚洲欧美中文在线| 疯狂做受xxxx高潮欧美日本| 91久久夜色精品国产网站| 日韩视频精品在线| xxav国产精品美女主播| 欧美午夜丰满在线18影院| 国产一区二区动漫| 欧美精品情趣视频| 伊人久久久久久久久久久久久| 日韩精品一区二区视频| 91免费看片网站| 超碰91人人草人人干| 欧美韩国理论所午夜片917电影| 97视频在线观看播放| 亚洲第一福利视频| 中文字幕精品久久| 日韩成人在线视频网站| 欧美在线视频网站| 91精品久久久久久久| 国产精品国产三级国产aⅴ9色| 国产一区二区精品丝袜| 精品久久久中文| 伊人激情综合网| 国产成人高清激情视频在线观看| 亚洲精品按摩视频| 国产成人精品久久亚洲高清不卡| 136fldh精品导航福利| 日韩免费看的电影电视剧大全| 日韩最新中文字幕电影免费看| 国产亚洲福利一区| 亚洲一区制服诱惑| 日韩美女写真福利在线观看| 性色av一区二区三区免费| 日韩欧美在线中文字幕| 国产精品户外野外| 午夜精品在线观看| 中文字幕日韩av| 亚洲一区精品电影| 91精品国产自产在线| 国产精品爽黄69|