public static MatOfDMatch fromNativeAddr(long addr) { return new MatOfDMatch(addr); }
public MatOfDMatch(DMatch...ap) { super(); fromArray(ap); }
public void fromArray(DMatch...a) { if(a==null || a.length==0) return; int num = a.length; alloc(num); float buff[] = new float[num * _channels]; for(int i=0; i<num; i++) { DMatch m = a[i]; buff[_channels*i+0] = m.queryIdx; buff[_channels*i+1] = m.trainIdx; buff[_channels*i+2] = m.imgIdx; buff[_channels*i+3] = m.distance; } put(0, 0, buff); //TODO: check ret val! }
if( matches_list.get(i).distance < 3*min_dist ){ MatOfDMatch temp = new MatOfDMatch(); temp.fromArray(matches.toArray()[i]); good_matches.push_back(temp); }
protected MatOfDMatch(long addr) { super(addr); if( !empty() && checkVector(_channels, _depth) < 0 ) throw new IllegalArgumentException("Incompatible Mat: " + toString()); //FIXME: do we need release() here? }
public DMatch[] toArray() { int num = (int) total(); DMatch[] a = new DMatch[num]; if(num == 0) return a; float buff[] = new float[num * _channels]; get(0, 0, buff); //TODO: check ret val! for(int i=0; i<num; i++) a[i] = new DMatch((int) buff[_channels*i+0], (int) buff[_channels*i+1], (int) buff[_channels*i+2], buff[_channels*i+3]); return a; }
public List<DMatch> toList() { DMatch[] adm = toArray(); return Arrays.asList(adm); } }
DescriptorMatcher descriptorMatcher; descriptorMatcher=DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE_HAMMING ); MatOfDMatch good_matches; good_matches = new MatOfDMatch(); LinkedList<MatOfDMatch> dmatchesListOfMat = new LinkedList<>(); descriptorMatcher.knnMatch(imgDescriptors1, imgDescriptors2, dmatchesListOfMat, 2); LinkedList<DMatch> good_matchesList = new LinkedList<>(); for (int matchIndx = 0; matchIndx < dmatchesListOfMat.size() ; matchIndx++) { double ratio = 0.8; if (dmatchesListOfMat.get(matchIndx).toArray()[0].distance < ratio * dmatchesListOfMat.get(matchIndx).toArray()[1].distance) { good_matchesList.addLast(dmatchesListOfMat.get(matchIndx).toArray()[0]); } } good_matches.fromList(good_matchesList);
protected MatOfDMatch(long addr) { super(addr); if( !empty() && checkVector(_channels, _depth) < 0 ) throw new IllegalArgumentException("Incompatible Mat: " + toString()); //FIXME: do we need release() here? }
public DMatch[] toArray() { int num = (int) total(); DMatch[] a = new DMatch[num]; if(num == 0) return a; float buff[] = new float[num * _channels]; get(0, 0, buff); //TODO: check ret val! for(int i=0; i<num; i++) a[i] = new DMatch((int) buff[_channels*i+0], (int) buff[_channels*i+1], (int) buff[_channels*i+2], buff[_channels*i+3]); return a; }
public List<DMatch> toList() { DMatch[] adm = toArray(); return Arrays.asList(adm); } }
protected MatOfDMatch(long addr) { super(addr); if( !empty() && checkVector(_channels, _depth) < 0 ) throw new IllegalArgumentException("Incompatible Mat: " + toString()); //FIXME: do we need release() here? }
public void fromArray(DMatch...a) { if(a==null || a.length==0) return; int num = a.length; alloc(num); float buff[] = new float[num * _channels]; for(int i=0; i<num; i++) { DMatch m = a[i]; buff[_channels*i+0] = m.queryIdx; buff[_channels*i+1] = m.trainIdx; buff[_channels*i+2] = m.imgIdx; buff[_channels*i+3] = m.distance; } put(0, 0, buff); //TODO: check ret val! }
public DMatch[] toArray() { int num = (int) total(); DMatch[] a = new DMatch[num]; if(num == 0) return a; float buff[] = new float[num * _channels]; get(0, 0, buff); //TODO: check ret val! for(int i=0; i<num; i++) a[i] = new DMatch((int) buff[_channels*i+0], (int) buff[_channels*i+1], (int) buff[_channels*i+2], buff[_channels*i+3]); return a; }
public static MatOfDMatch fromNativeAddr(long addr) { return new MatOfDMatch(addr); }
public List<DMatch> toList() { DMatch[] adm = toArray(); return Arrays.asList(adm); } }
public MatOfDMatch(DMatch...ap) { super(); fromArray(ap); }
protected MatOfDMatch(long addr) { super(addr); if( !empty() && checkVector(_channels, _depth) < 0 ) throw new IllegalArgumentException("Incompatible Mat: " + toString()); //FIXME: do we need release() here? }
public void fromArray(DMatch...a) { if(a==null || a.length==0) return; int num = a.length; alloc(num); float buff[] = new float[num * _channels]; for(int i=0; i<num; i++) { DMatch m = a[i]; buff[_channels*i+0] = m.queryIdx; buff[_channels*i+1] = m.trainIdx; buff[_channels*i+2] = m.imgIdx; buff[_channels*i+3] = m.distance; } put(0, 0, buff); //TODO: check ret val! }
public DMatch[] toArray() { int num = (int) total(); DMatch[] a = new DMatch[num]; if(num == 0) return a; float buff[] = new float[num * _channels]; get(0, 0, buff); //TODO: check ret val! for(int i=0; i<num; i++) a[i] = new DMatch((int) buff[_channels*i+0], (int) buff[_channels*i+1], (int) buff[_channels*i+2], buff[_channels*i+3]); return a; }