image-js
Version:
Image processing and manipulation in JavaScript
30 lines • 1.09 kB
JavaScript
import { getKeypointsInRadius } from './utils/getKeypointsInRadius.js';
/**
* Return the best keypoints within the given radius in pixels.
* @param keypoints - Keypoints to process.
* @param radius - Minimum distance in pixels between two keypoints.
* @returns The filtered keypoints.
*/
export function getBestKeypointsInRadius(keypoints, radius = 5) {
const size = keypoints.length;
const keypointsInRadius = getKeypointsInRadius(keypoints, radius);
const toIgnore = new Uint8Array(size).fill(0);
for (let i = 0; i < size; i++) {
const keypoint = keypoints[i];
for (const secondKeypointIndex of keypointsInRadius[i]) {
const secondKeypoint = keypoints[secondKeypointIndex];
if (keypoint.score < secondKeypoint.score) {
toIgnore[i] = 1;
continue;
}
}
}
const result = [];
for (let i = 0; i < size; i++) {
if (!toIgnore[i]) {
result.push(keypoints[i]);
}
}
return result;
}
//# sourceMappingURL=getBestKeypointsInRadius.js.map