image-js
Version:
Image processing and manipulation in JavaScript
36 lines (31 loc) • 1.01 kB
text/typescript
import type { Image } from '../../Image.js';
import type { Point } from '../../geometry/index.js';
import { sum } from '../../utils/geometry/points.js';
export interface CompareIntensityOptions {
/**
* Origin of the points coordinates relative to the top-left corner.
* @default `image.getCoordinates('center')`
*/
origin?: Point;
}
/**
* Compare the intensity of two pixels of a GREY image.
* @param image - Source image of the pixels.
* @param p1 - First point.
* @param p2 - Second point.
* @param options - Options.
* @returns Wether p1 is darker that p2.
*/
export function compareIntensity(
image: Image,
p1: Point,
p2: Point,
options: CompareIntensityOptions = {},
): boolean {
const { origin = image.getCoordinates('center') } = options;
const absoluteP1 = sum(p1, origin);
const absoluteP2 = sum(p2, origin);
const intensity1 = image.getValueByPoint(absoluteP1, 0);
const intensity2 = image.getValueByPoint(absoluteP2, 0);
return intensity1 < intensity2;
}