我正在尝试开发自己的增强现实引擎.
在互联网上搜索,我发现了这个有用的教程.阅读它我发现重要的是在用户位置,点位置和北方之间.
以下图片来自该教程.

接下来,我写了一个Objective-C方法来获得beta:
+ (float) calculateBetaFrom:(CLLocationCoordinate2D)user to:(CLLocationCoordinate2D)destination
{
double beta = 0;
double a, b = 0;
a = destination.latitude - user.latitude;
b = destination.longitude - user.longitude;
beta = atan2(a, b) * 180.0 / M_PI;
if (beta < 0.0)
beta += 360.0;
else if (beta > 360.0)
beta -= 360;
return beta;
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试它时,它不能很好地工作.
所以,我检查了iPhone AR Toolkit,看它是如何工作的(我一直在使用这个工具包,但它对我来说太大了).
而且,在ARGeoCoordinate.m中,还有另一种如何获得beta的实现:
- (float)angleFromCoordinate:(CLLocationCoordinate2D)first toCoordinate:(CLLocationCoordinate2D)second {
float longitudinalDifference = second.longitude - first.longitude;
float latitudinalDifference = second.latitude - first.latitude;
float …Run Code Online (Sandbox Code Playgroud) 我看到有人制作了一个使用相机跟踪你的脚的应用程序,这样你就可以在iPhone屏幕上踢一个虚拟足球.
你怎么能这样做?有没有人知道有关使用iPhone相机检测对象和跟踪它们的任何代码示例或其他信息?
我的目标是UILabel使用图像跟踪和Vuforia AR SDK 覆盖标准UIKit视图(暂时,我只是创建一个但最终我将拥有自定义内容)在检测到的形状上.我有一些有用的东西,但有一个我不能解释的"软糖"术语.我想知道我的错误在哪里,所以我可以证明这种修正的存在,或者使用一种已知有效的不同算法.
我的项目基于Vuforia SDK中的ImageTargets示例项目.如果他们EAGLView迭代结果来渲染OpenGL茶壶,我已经用调用我的ObjC++类来替换它TrackableObjectController.对于每个可跟踪的结果,它执行以下操作:
- (void)augmentedRealityView:(EAGLView *)view foundTrackableResult:(const QCAR::TrackableResult *)trackableResult
{
// find out where the target is in Core Animation space
const QCAR::ImageTarget* imageTarget = static_cast<const QCAR::ImageTarget*>(&(trackableResult->getTrackable()));
TrackableObject *trackable = [self trackableForName: TrackableName(imageTarget)];
trackable.tracked = YES;
QCAR::Vec2F size = imageTarget->getSize();
QCAR::Matrix44F modelViewMatrix = QCAR::Tool::convertPose2GLMatrix(trackableResult->getPose());
CGFloat ScreenScale = [[UIScreen mainScreen] scale];
float xscl = qUtils.viewport.sizeX/ScreenScale/2;
float yscl = qUtils.viewport.sizeY/ScreenScale/2;
QCAR::Matrix44F projectedTransform = {1, 0, 0, 0, 0, 1, 0, 0, 0, 0, …Run Code Online (Sandbox Code Playgroud) 我正计划开发像Word Lens这样的应用程序.任何人都可以建议我可以使用的好图书馆吗?或任何人解释Word Lens App背后的技术?是卷轴时间图像匹配还是OCR?我知道一些图像处理库,如OpenCv,tesseract ...非常感谢任何帮助......
我正在开发一个具有RADAR功能的应用程序,就像LOVOO应用程序一样.我没有使用CoreLocation和其他基于位置的框架的经验.
如果您能告诉我如何实现这一目标,将不胜感激.我应该使用哪些框架以及如何最初进行.
虽然同样的问题已经在这里SO存在于我的问题是一样的雷达画面像LOVOO ,但对我没有用它这就是为什么我又要求它.
我曾尝试自己到目前为止,我已经点lat和长值绘制和我算中心点(我的位置)和其他点之间的角度和距离
- (float)angletoCoordinate:(CLLocationCoordinate2D)second {
//myCurrentLocation is origin
//second is point
float lat1 = DegreesToRadians(myCurrentLocation.coordinate.latitude);
float lon1 = DegreesToRadians(myCurrentLocation.coordinate.longitude);
float lat2 = DegreesToRadians(second.latitude);
float lon2 = DegreesToRadians(second.longitude);
float dLon = lon2 - lon1;
float y = sin(dLon) * cos(lat2);
float x = cos(lat1) * sin(lat2) - sin(lat1) * cos(lat2) * cos(dLon);
float radiansBearing = atan2(y, x);
if(radiansBearing < 0.0)
{
radiansBearing += 2*M_PI;
}
return radiansBearing;
}
-(float)calculateXPointWithLoc:(ARGeoLocation *)loc andDelta:(float)delta{
float angle = radiansToDegrees(delta);
float dpx …Run Code Online (Sandbox Code Playgroud) 如果Apple的ARKit支持像Vuforia那样的3D对象跟踪(甚至图像跟踪),我找不到任何信息.我不想在世界任何地方放置3D模型.相反,我想检测特定的3D对象并将AR对象放在该对象的前面和顶部.
简单的例子:我想跟踪现实世界中的特定玩具车,并在AR场景中添加扰流板.
有人可以提供我可能的信息吗?
我一直在寻找创建增强现实应用程序.任何人都可以建议一个首选的技术平台来开始编写这种应用程序.
我希望这是一个桌面应用程序而不是移动应用程序.因此,我想使用具有对象识别功能的网络摄像头.
谢谢!
我正在研究Android上的基本增强现实应用程序.到目前为止我所做的是用opencv检测一个正方形然后使用cvFindExtrinsicCameraParams2()我计算了一个旋转和平移向量.为此,我使用了4个对象点,它们只是(0,0,0)方形的角和图像中方形的4个角.
这给我一个非常好的旋转和平移矩阵.我还用cvRodrigues2()计算了旋转矩阵,因为使用它比旋转矢量更容易.只要我用它们在图像中绘制一些点就可以了.然而,我的下一步是将这些向量和矩阵传递回java,然后使用它们与OpenGL在OpenGLView中绘制一个正方形.正方形应该恰好位于OpenGLView后面显示的图像中的正方形.
我的问题是我找不到在OpenGL中使用旋转矩阵和平移向量的正确方法.我开始使用与openCV函数完全相同的对象点.然后我以几乎任何可能的方式应用旋转矩阵和平移向量.遗憾的是,这些方法都没有产生任何接近我希望的结果.谁能告诉我如何正确使用它们?
到目前为止,我得到的"最接近"的结果是将整个矩阵随机乘以-1.但大多数情况下,方块仍然看起来镜像反转或旋转180度.所以我想这只是一个幸运的打击,但不是正确的方法.
我是增强现实领域的初学者,致力于使用智能手机创建建筑计划(平面图,房间平面图等,具有精确测量)的应用程序.所以我正在研究可用于此的最佳AR SDK.Vuforia对抗ARCore和ARKit的文章并不多.
请建议使用最好的SDK,各自的优点和缺点.
我正在开发一款适用于iPhone的增强现实应用程序,它涉及一种处理器密集型的物体识别算法(以100%的速度推动CPU可以达到每秒5帧),并努力节省电池电量和制作整个事情不那么"紧张"我正试图想出一种只在用户实际移动相机时运行该对象识别器的方法.
我的第一个想法是简单地使用iPhone的加速度计/陀螺仪,但在测试中我发现,人们常常会以一致的姿态和速度移动iPhone,以至于没有任何方法可以判断它仍处于运动状态.
这样就可以选择分析实际的视频输入并检测其中的移动.我让OpenCV工作并尝试运行他们的金字塔式Lucas-Kanade光流算法,该算法运行良好但似乎几乎与我的对象识别器一样处理器密集型 - 如果我降低深度级别/下采样,我可以使其达到可接受的帧率图像/跟踪更少的点,但随后精度受到影响,它开始错过一些大的动作并触发小手抖动的动作.
所以我的问题是,如果我只想检测相机移动的整体幅度,是否还有比Lucas-Kanade更快的光流算法?我不需要跟踪单个物体,我甚至不需要知道相机移动的方向,我真正需要的是一种方式来提供两帧视频,让它告诉我它们有多远.