我使用OpenCV和Kivy为用户界面构建了一个Python图像识别应用程序。基本上,该应用程序的目的是识别一组棋盘游戏中使用的卡片,并在屏幕上显示高清数字版本(附加信息)。
它使用ORB进行特征检测和描述,使用Flann进行特征匹配。一切都在桌面上完全正常工作(Ubuntu 14.10和Windows 7和8),这意味着我没有误报。
当我为Android构建应用程序时(使用buildozer和最后一个版本的Kivy),所有内容编译得很好,应用程序运行良好。问题是识别似乎完全搞砸了:我现在只有误报! Android和桌面上的代码几乎相同(我只是为了性能而不经常检查数据库),我在两个平台上使用Kivy Camera小部件来进行预览。
我的猜测是它来自Kivy在Android上使用的不同摄像头提供商(camera_android.py)和Ubuntu(camera_pygst.py),但也许我错了。
另一个领导是进行某种相机校准,但我不知道该怎么做。也许通过调整android.hardware.Camera参数?
有人知道为什么应用程序在两个平台上的表现如此不同?
答案 0 :(得分:2)
使用opencv的视频捕捉方法时遇到同样的问题。我的解决方案是使用plyer模块(https://github.com/kivy/plyer)。来自plyer导入相机,将有助于解决您的问题。 BTY,您想分享您的代码