メニューを閉じる

テクノモバイルグループ

メニューを開く

2019.10.30

プログラミング

AndroidのQRコードリーダーSDKはzxingよりOpenCV4が精度いい

坂東です。

既存アプリにQRコードリーダー機能を追加するにあたり定番のzxingを使ったんですけれど、

QRコードの読取、生成をする [Android]
https://qiita.com/hoshiume11/items/0f496fe80df84875c132

妙に読み取り精度が悪いんです。
カメラに近づきすぎても離れすぎても駄目で、30cm〜40cmぐらいの距離じゃないと認識しない。

 

いままでzxing使ってて別に支障なかったけどなあ、と思って気づいた今回は使うのはフロントカメラ。
いままではリアのメインカメラを使うのばかりでした。

 

リアカメラはまあメインなのでオートフォーカスがあったり画質が良かったりレンズが3つあったりします。
フロントカメラは自撮り用途なので機能的に大きく劣りオートフォーカスもなかったりする機種が多いです。

zxingはどうもオートフォーカス前提の実装で距離にシビアなんじゃないかなと。

 

zxingに食わせる前に画像加工しなきゃだめか。
OpenCVいれるかー、と思ったら最近のOpenCVにはQRコード読み取り機能がついてるんですね。

cv::QRCodeDetector Class Reference
https://docs.opencv.org/4.0.0/de/dc3/classcv_1_1QRCodeDetector.html

さっそく実装。すぐできた。

カメラで読ませるなら、だいたいこんなかんじ。

 

認識精度は大幅に向上しました。
でもOpenCVライブラリってでかいからapkが50MBぐらい増える。
まあ内部用アプリなのでいいけど公開するなら考えちゃいますね。

 

こちらで色々説明してくれてます。

QRコード検出APIの解説

https://qiita.com/tomoaki_teshima/items/f136e51fa1da6927471b

 

おわり。


【テクノモバイルではエンジニア/デザイナーを積極採用中です!】

下記項目に1つでも当てはまる方は是非、詳細ページへ!
  • 自分でアプリを作ってみたい
  • ITで世の中にワクワクを生み出したい
  • 使いやすさ、デザインにこだわったWebサイトを開発したい

採用情報の詳細はこちら


Qangaroo(カンガルー)

  • 徹底した見やすさと優れた操作性で、テストの「見える化」を実現。
  • テストの進捗が見える。開発がスマートに進む。
  • クラウド型テスト管理ツール『Qangaroo(カンガルー)』
https://qangaroo.jp/

最近の記事

SNS共有

X CLOSE
X CLOSE
X CLOSE