【问题标题】:image recognition not working properly for multiple target images in WikitudeWikitude 中的多个目标图像的图像识别无法正常工作
【发布时间】:2015-11-17 19:55:28
【问题描述】:

我正在使用 Wikiitude SDK 制作增强现实应用。图像识别后,我在扫描图像的顶部显示 2D 图像。对于需要扫描的多张图像,需要重复此过程。

我尝试了以下方法,但未能获得结果。 方法一:

我将所有需要扫描的图像(目标图像)的名称存储在一个数组中,并将该数组作为参数传递给增强现实函数 AR.Trackable2DObject 如下所述:

var arr1=["Mango", "Guava","Papaya","Banana"];

for(var i=0;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 对象),并根据任何匹配叠加一个 2D 可绘制对象使用 AR.ImageDrawable 对象。 上述方法的问题是 AR.Trackable2DObject 在将其与跟踪器进行比较时无法读取数组中的所有元素。因此,在图像识别成功后,它不会覆盖任何 2D 可绘制对象。 如果有人可以解释对 AR.Trackable2DObject 的函数调用如何与数组一起使用?

请回复我可以为您的回复提供更多输入。

【问题讨论】:

    标签: javascript android wikitude


    【解决方案1】:

    当您的目标存档中有多个目标图像并且您只有一个覆盖图像时,您不会将整个存档作为参数传递,您可以传递第二个参数,例如:“*”。这意味着在目标存档显示overlayOne的任何图片上。

    var pageOne = new AR.Trackable2DObject(this.tracker, "*", {
            drawables: {
                cam: overlayOne
            }
        });
    

    如果您只想在某些图像上而不是全部上构建此叠加层,请在您的 wtc 文件中进行命名约定。例如,不要将“apple”和“banana”命名为“word_apple”和“word_banana”。并在 AR.Trackable2DObject 中作为第二个参数“word_*”传递。

    附:它不适用于数组。

    【讨论】:

    • 感谢您的回复。我试过使用“*”并且它有效。但是,我正在尝试为 wtc 文件中的每个目标图像显示一个单独且唯一的叠加层(一个 2D 可绘制对象)。例如,overlayOne 用于 Target Image1,overlayTwo 用于 Target Image2。就像我有多个目标图像。你能建议一种有效的方法来处理它吗?
    • 两种方式既高效又简单。在您打开凸轮视图时轻松创建一堆 AR.ImageResource,并为每个目标图像创建它自己的 AR.Trackable2DObject(不要忘记将 * 更改为目标图像的名称)。高效,您不会在图片识别之前创建任何内容。在 onRecognition 检查“response.targetInfo.name”或元数据,您事先为每个目标图片设置。并取决于您的 imageResourse 和 2DObject。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 2013-08-04
    • 2023-03-31
    • 2013-04-17
    相关资源
    最近更新 更多