Skip to content

Instantly share code, notes, and snippets.

@albjeremias
Created March 22, 2020 12:09
Show Gist options
  • Save albjeremias/8552a5945cdd71f38795f7d620f40479 to your computer and use it in GitHub Desktop.
Save albjeremias/8552a5945cdd71f38795f7d620f40479 to your computer and use it in GitHub Desktop.
some snippet of js with opencv matching
let MAX_FEATURES = 500;
let imSceneGray = new cv.Mat();
let imObjectGray = new cv.Mat();
let orb = new cv.ORB();
let kpScene = new cv.KeyPointVector();
let descriptorsScene = new cv.Mat();
let kpObject = new cv.KeyPointVector();
let descriptorsObject = new cv.Mat();
let bf;
let matches = new cv.DMatchVectorVector();
let mask = new cv.Mat();
// Convert images to grayscale
cv.cvtColor(imScene, imSceneGray, cv.COLOR_RGBA2GRAY, 0);
cv.cvtColor(imObject, imObjectGray, cv.COLOR_RGBA2GRAY, 0);
// Detect ORB features and compute descriptors.
orb.setMaxFeatures(MAX_FEATURES);
orb.detectAndCompute(imScene, new cv.Mat(), kpScene, descriptorsScene)
orb.detectAndCompute(imObject, new cv.Mat(), kpObject, descriptorsObject)
// create BFMatcher object
bf = new cv.BFMatcher(cv.NORM_HAMMING2, true);
// Match descriptors.
// bf.match(descriptorsScene, descriptorsObject, matches, mask)
if (descriptorsScene.size().width < 1 && descriptorsScene.size().height < 1 )
{
return;
}
bf.knnMatch(descriptorsObject, descriptorsScene, matches, 1)
// filtering bad matches...
for (let i = 0; i < this.size(); i++) {
// CPP: if (knn_matches[i][0].distance < ratio_thresh * knn_matches[i][1].distance)
if (this.get(i).get(0) !== undefined)
{
debugger;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment