image-js
Version:
Image processing and manipulation in JavaScript
23 lines • 1.13 kB
JavaScript
import { getEigenvaluesForScore } from './getEigenvaluesForScore.js';
/**
* Get the Harris score of a corner. The idea behind the algorithm is that a
* slight shift of a window around a corner along x and y should result in
* a very different image.
*
* We distinguish 3 cases:
* - the score is highly negative: you have an edge
* - the absolute value of the score is small: the region is flat
* - the score is highly positive: you have a corner.
* @see {@link https://en.wikipedia.org/wiki/Harris_corner_detector}
* @param image - Image to which the corner belongs. It must be a greyscale image with only one channel.
* @param origin - Center of the window, where the corner should be.
* @param options - Get Harris score options.
* @returns The Harris score.
*/
export function getHarrisScore(image, origin, options = {}) {
const { harrisConstant = 0.04, windowSize } = options;
const eigenValues = getEigenvaluesForScore(image, origin, windowSize);
return (eigenValues[0] * eigenValues[1] -
harrisConstant * (eigenValues[0] + eigenValues[1]) ** 2);
}
//# sourceMappingURL=getHarrisScore.js.map