Articles of 增强现实

计算透视变换目标图像的宽高比

我最近在OpenCV中实现了透视转换到我的Android应用程序。 几乎所有的工作都没有问题,但一方面需要做更多的工作。 问题是我不知道如何计算透视变换的目标图像的正确高宽比(不需要手动设置),以便它可以计算图像的高宽比与真实的大小东西/图像, 尽pipe相机的angular度 。 请注意,起始坐标不形成梯形,它确实形成一个四边形。 如果我有一张从大约45度拍摄的书的照片,我希望目标图像的纵横比与本书的纵横比几乎相同。 有2D照片很难,但CamScanner应用程序完美。 我已经做了非常简单的方法来计算我的目标图像的大小(没有期望它的工作,因为我想),但它使图像从45度angular约20%,当降低angular度的图像高度减less很显然,虽然CamScanner可以完美的完成angular度, 在这里,CamScanner保持目标图像(第二个)的纵横比与书本相同,即使在20度的angular度下,它也相当准确。 同时,我的代码看起来像这样(虽然计数目标图像的大小,我没有打算它的工作,因为我问这个问题): public static Mat PerspectiveTransform(Point[] cropCoordinates, float ratioW, float ratioH, Bitmap croppedImage) { if (cropCoordinates.length != 4) return null; double width1, width2, height1, height2, avgw, avgh; Mat src = new Mat(); List<Point> startCoords = new ArrayList<>(); List<Point> resultCoords = new ArrayList<>(); Utils.bitmapToMat(croppedImage, src); for (int […]

如何提高加速度计和指南针传感器的精度?

我正在创build一个增强现实应用程序,当手机正面临一个兴趣点(手机上存储着这个GPS位置)时,这个应用程序只能显示一个文本视图。 文本视图被绘制在屏幕上的兴趣点位置上。 它工作正常,问题是指南针和加速度计是非常“变体”,并且textview不断上下左右移动,因为传感器的精确性。 有办法解决吗?

如何启动Vuforia AR示例应用程序android?

我跟随Vuforia ,我已经运行的样品,它工作正常,但如果我想开始我们自己的应用程序,所以你可以帮我如何启动应用程序。 谢谢。

Android中最快的移动对象识别和跟踪

我正在制作一个增强现实游戏,它需要识别和跟踪一个快速移动的对象。 我已经尝试了以下image processing库, 1. Opencv 2. BoofCv 3. FastCv 我曾经尝试过使用顶级域名(TLD)algorithm来跟踪对象,跟踪是成功的,但是性能确实需要改进。 如果对象移动得更快,则由于algorithm花费的处理时间,结果会花费时间。 我也尝试循环,像boofcvalgorithm的意思转移。 检查这些演示: OpenTLD使用FastCv Boofcv示范 在这两个演示中的对象跟踪似乎是好的,但计算需要时间。 我可以用下面的scheme去做这个更快, 提取待跟踪物体的r,g,bmatrix 取相机帧并将其转换为ar,g,bmatrix,并在相机框中search跟踪的目标matrix。 有没有更好的方法来做到这一点?

Android上的标记识别(识别Rubik的立方体)

我正在开发一个Android的增强现实应用程序,使用手机的相机来识别魔方的每个面上的彩色正方形的排列。 我不确定的一件事情是如何去检测和识别立方体每个面上的彩色正方形。 如果你看一个魔方,那么你可以看到,每个方块都是六种可能的颜色之一,并带有一个薄的黑色边框。 这导致我认为它应该相对简单地检测一个正方形,可能使用现有的标记检测API。 我的问题是真的,这里有人有任何图像识别和Android的经验吗? 理想情况下,我希望能够实现和现有的API,但如果有人能指引我正确的方向开始,这将是一个有趣的项目,从头开始。 提前谢谢了。

通过特定的位置和经度获取屏幕坐标(android)

我有一个应用增强现实,我已经存储了信息,例如我们的地铁,加油站,感兴趣的地方等相应的经度和纬度。 现在,根据设备的方向,我会在设备的相机视图中为每个站点显示一个标记。 类似于Layar和Wikitude。 需要三天的时间不停地search,没有find任何人解释如何解决这个问题。

Android平台上增强现实的好书吗?

任何人都可以build议在Android平台上增强现实的好书。 我正在开发基于AR的应用程序,我已经实现了相机,指南针和方向function。 但是我被困在如何显示设备的屏幕上,我从服务器接收的经纬度设置。 任何帮助将不胜感激。 提前致谢。

Android getOrientation倾斜手机时,方位angular会受到污染

AR视图像一个指南针一样,真的很烦人。 所以当我拿着手机的肖像(使屏幕指向我的脸),然后我把它remapCoordinateSystem ,当它拿着肖像时,音调是0。 然后,方位angular(指南针function)是完美的,但只要我倾斜手机的方位angular被破坏,如果我弯曲的方位angular增加,如果我向后弯曲减less。 我使用2个传感器来读取Sensor.TYPE_MAGNETIC_FIELD和Sensor.TYPE_GRAVITY 。 我使用了一个非常基本的低通滤波器,它使用一个alpha常量来实现,并直接用于传感器的读取值。 这是我的代码: float[] rotationMatrix = new float[9]; SensorManager.getRotationMatrix(rotationMatrix, null, gravitymeterValues, magnetometerValues); float[] remappedRotationMatrix = new float[9]; SensorManager.remapCoordinateSystem(rotationMatrix, SensorManager.AXIS_X, SensorManager.AXIS_Z, remappedRotationMatrix); float results[] = new float[3]; SensorManager.getOrientation(remappedRotationMatrix, results); float azimuth = (float) (results[0] * 180 / Math.PI); if (azimuth < 0) { azimuth += 360; } float pitch = (float) […]

Android:计算设备方向的问题

我试图build立一个简单的增强现实应用程序,所以我开始使用传感器数据。 根据此线程( Android指南针示例 )和示例( http://www.codingforandroid.com/2011/01/using-orientation-sensors-simple.html ),使用Sensor.TYPE_ACCELEROMETER和Sensor计算方向。 TYPE_MAGNETIC_FIELD并不适合。 所以我无法得到“好”的价值。 方位angular值完全没有任何意义,所以如果我把电话向上移动的话,这个值就会发生极大的变化。 即使我只是旋转手机,值并不代表手机的方向。 有没有人有一个想法,按照给定的例子来提高价值的质量?

如何整合Android应用程序的metaio +打开简历?

您好我想创build一个与增强现实(AR)有关的应用程序,并能够在两个单独的应用程序中成功configuration我的应用程序与Metaio SDK和OpenCV库。 但事情是我想同时使用OpenCV和Metaio的库到一个应用程序。 所以任何人都可以帮助我整合。 在我的单个应用程序中,我想使用OpenCV进行无标记检测,使用MetaIO进行3D模型渲染。 Metaio: http : //www.metaio.com/ OpenCV: http : //opencv.org/ =====> 我正在使用opencv来检测相机图像中的形状,并希望在这些形状上显示由metaio渲染的3D对象。 类似于标记跟踪。 Metaio和openCV,每个都有自己的cameraview。 我禁用了openCV的cameraview。 我想将在onNewCameraFrame()方法中收到的ImageStruct对象转换为Android中的OpenCV Mat。 为此,我已经注册了MetaioSDKCallback来连续接收相机帧。 但是这个callback的onSDKReady()和onNewCameraFrame()方法没有被调用,尽pipe我已经添加了'metaioSDK.requestCameraImage()'。 这是我坚持下去的地方。