Wikitude中的多个目标图像的图像识别无法正常工作
image recognition not working properly for multiple target images in Wikitude
我正在使用Wikitude SDK制作一个增强现实应用程序。在图像识别后,我在扫描图像的顶部显示2D图像。对于需要扫描的多个图像,需要重复此过程。
我尝试了以下方法,但没能得到结果。方法1:
我将需要扫描的所有图像(目标图像)的名称存储在一个数组中,并将该数组作为参数传递给augmented reality函数AR.Trackable2下面提到的对象:
var arr1=["芒果"、"番石榴"、"木瓜"、"香蕉"];
对于(var i=0;i<4;i++)
{
var getTargetName1= new AR.Trackable2DObject(this.tracker, arr1[i],
{
drawables: {
cam: [new AR.ImageDrawable(new
AR.ImageResource("assets/"+arr1[i]+".png"), 1, {
offsetX: -0.15,
offsetY: 0,
onClick:function(arObject)
{
}
})]
},
onEnterFieldOfVision:function(targetName)
{
// arr.push(targetName);
alert(targetName);
//alert("assets/"+targetName+".png");
},onExitFieldOfVision: function onExitFieldOfVisionFn() {
}
});
}
在上述情况下,创建对象AR.Trackable2DObject,在图像识别后,将阵列的元素与跟踪器的元素进行比较(两者都作为参数传递给上述AR对象),并基于任何匹配,使用AR.ImageDrawable对象覆盖2D可绘制图。上述方法的问题是AR.Tracke2DObject在将数组与跟踪器进行比较时无法读取数组中的所有元素。因此,在图像识别成功之后,WHich不覆盖任何2D可绘制图像。如果有人能解释对AR.Tracke2DObject的函数调用是如何与数组一起工作的?
请回复,我可以为您的回复提供更多意见。
当您的目标档案中有多个目标图像,而只有一个覆盖图像时,您不将整个档案作为参数传递,而是传递第二个参数:"*"。这意味着在目标档案的任何图片上显示overlayOne。
var pageOne = new AR.Trackable2DObject(this.tracker, "*", {
drawables: {
cam: overlayOne
}
});
如果你想只在一些图像上构建这个覆盖,而不是在所有图像上,那么在你的wtc文件中制定一个命名约定。例如,将它们命名为"word_apple"answers"word_banana",而不是"苹果"answers"香蕉"。并且在AR.Trackeable2DObject中作为第二个参数"word_*"传递。
附言:它不适用于数组。
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- ajaxToolkit PopupControlExtender不工作.过时的
- HTML标记在脚本标记中工作
- javascript扫雷器floodfill算法不能正常工作