Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在OpenImaj库中使用BagOfVisualWord类_Java_Generics_Openimaj - Fatal编程技术网

Java 在OpenImaj库中使用BagOfVisualWord类

Java 在OpenImaj库中使用BagOfVisualWord类,java,generics,openimaj,Java,Generics,Openimaj,所以在我的例子中,我应该为ComputeQuantizedFeatures方法提供两个参数,第二个是类型 List<LocalFeature<Location, ? extends ArrayFeatureVector<byte[]>>> 列表 我尝试传递类型为的imagekeypoints列表 LocalFeatureList<Keypoint> LocalFeatureList 而且 List<Lo

所以在我的例子中,我应该为ComputeQuantizedFeatures方法提供两个参数,第二个是类型

        List<LocalFeature<Location, ? extends ArrayFeatureVector<byte[]>>>
列表
我尝试传递类型为的imagekeypoints列表

    LocalFeatureList<Keypoint>
LocalFeatureList
而且

    List<LocalFeature<KeypointLocation, ByteFV>> features = null;
    for (java.util.Iterator<Keypoint> iter = imageKeypoints.iterator(); iter.hasNext();)
    {features.add((LocalFeature<KeypointLocation, ByteFV>)iter.next());}
List features=null;
for(java.util.Iterator iter=imageKeypoints.Iterator();iter.hasNext();)
{features.add((LocalFeature)iter.next());}
但我总是犯了一个著名的错误

    The method computeQuantisedFeatures(HardAssigner<T,?,?>, List<LocalFeature<L,? 
    extends ArrayFeatureVector<T>>>) in the type BagOfVisualWords is not applicable for
    the arguments (HardAssigner<byte[],capture#3-of ?,capture#4-of ?>, 
    List<LocalFeature<KeypointLocation,ByteFV>>)
BagOfVisualWords类型中的ComputeQuantizedFeatures(HardAssigner,List)方法不适用于
参数(硬赋值器,
(列表)

注意:我的回答基于
关键点
来源


这个问题源于泛型。该方法需要一个
列表
,但您提供的是一个
列表
。如果该方法采用Paul Bellora指出的
列表,那么这实际上是该方法泛型中的一个bug。我刚刚提交了一个补丁,不久将在
1.1.1-SNAPSHOT
版本中提供。临时解决方案是在类中实现正确版本的
computeQuantizedFeatures
方法,如下所示:

public static <L extends Location, T> List<QuantisedLocalFeature<L>> computeQuantisedFeatures(
    HardAssigner<T, ?, ?> assigner,
    List<? extends LocalFeature<L, ? extends ArrayFeatureVector<T>>> features)
{
    final List<QuantisedLocalFeature<L>> out = new ArrayList<QuantisedLocalFeature<L>>(features.size());

    for (final LocalFeature<L, ? extends ArrayFeatureVector<T>> f : features) {
        final int idx = assigner.assign(f.getFeatureVector().values);
        out.add(new QuantisedLocalFeature<L>(f.getLocation(), idx));
    }

    return out;
}
公共静态列表ComputeQuantizedFeatures(
硬性转让人转让人,

Listi尝试此操作,但仍然得到相同的错误`List imagekeypointsList=new ArrayList();for(Keypoint键:imageKeypoints){imagekeypointsList.add(键);}`不是说hardassigner也不适用嗯,那应该可以。你试过Jon的解决方案吗?请用你最新的代码和错误更新问题,如果它仍然不起作用。谢谢paul是的,我试过了。问题为assigner解决了,但不是为功能。我将更新我的问题嗯,我认为你缺少一些基本的东西。A根据你仍然在同一个
列表中传递的错误
。是的,可能关键点不是正确的选择。我希望jon博士给我一个建议