Fry in the Web

次からこうしようと思ったことを書き残しておきます

OpenCVでカメラが動かない時の対処法

PayPayのQRコード読みとりめちゃめちゃ早いですよね。

既存のQRコードを読み取るアプリより、速いアプリを作ろうと思っています。

QRコードを読み取るにはZXingより、OpenCVの方が速いと聞いたので今回はOpenCVを採用しました。

しかし、大きな落とし穴があって(?)

OpenCV Android SDKのbuild.gradleに公式が記述している通りにインポートを行っても、うまく使えるようになりません。

具体的にはカメラを使おうとしても、onCameraFrameが呼ばれず映像が帰ってきません。

公式が記述している方法は、多くの方が解説してあるものと同じです。

qiita.com

Twitterで「Kotlin Android OpenCV」などと検索しても、同じように困っている方が見つかるだけで解決した方は居ないようです。 (豆知識ですが「from:xxxxxx until:2019-09-25」で検索するとその人のツイートのその後の経過がわかります。) f:id:WEBIFRY:20200312162555p:plain f:id:WEBIFRY:20200312162603p:plain

結論から言うと、OpenCV 4.1.0のAndroid SDKを使えばこの問題を回避できます。

対症療法的な対策ではありますが、とりあえずは動くようになります。

NDKとハードウェア絡みは思い当たる原因がありすぎて、問題の切り分けがめんどくさいですね。

問題の根治法がわかったら、また追記します。

追記 2020-5-10

Firebase ML kitのほうが早いわ