import ResultPoint from '../../ResultPoint';
|
import BitMatrix from '../BitMatrix';
|
/**
|
* <p>
|
* Detects a candidate barcode-like rectangular region within an image. It
|
* starts around the center of the image, increases the size of the candidate
|
* region until it finds a white rectangular region. By keeping track of the
|
* last black points it encountered, it determines the corners of the barcode.
|
* </p>
|
*
|
* @author David Olivier
|
*/
|
export default class WhiteRectangleDetector {
|
private image;
|
private static INIT_SIZE;
|
private static CORR;
|
private height;
|
private width;
|
private leftInit;
|
private rightInit;
|
private downInit;
|
private upInit;
|
/**
|
* @param image barcode image to find a rectangle in
|
* @param initSize initial size of search area around center
|
* @param x x position of search center
|
* @param y y position of search center
|
* @throws NotFoundException if image is too small to accommodate {@code initSize}
|
*/
|
constructor(image: BitMatrix, initSize?: number, x?: number, y?: number);
|
/**
|
* <p>
|
* Detects a candidate barcode-like rectangular region within an image. It
|
* starts around the center of the image, increases the size of the candidate
|
* region until it finds a white rectangular region.
|
* </p>
|
*
|
* @return {@link ResultPoint}[] describing the corners of the rectangular
|
* region. The first and last points are opposed on the diagonal, as
|
* are the second and third. The first point will be the topmost
|
* point and the last, the bottommost. The second point will be
|
* leftmost and the third, the rightmost
|
* @throws NotFoundException if no Data Matrix Code can be found
|
*/
|
detect(): Array<ResultPoint>;
|
private getBlackPointOnSegment;
|
/**
|
* recenters the points of a constant distance towards the center
|
*
|
* @param y bottom most point
|
* @param z left most point
|
* @param x right most point
|
* @param t top most point
|
* @return {@link ResultPoint}[] describing the corners of the rectangular
|
* region. The first and last points are opposed on the diagonal, as
|
* are the second and third. The first point will be the topmost
|
* point and the last, the bottommost. The second point will be
|
* leftmost and the third, the rightmost
|
*/
|
private centerEdges;
|
/**
|
* Determines whether a segment contains a black point
|
*
|
* @param a min value of the scanned coordinate
|
* @param b max value of the scanned coordinate
|
* @param fixed value of fixed coordinate
|
* @param horizontal set to true if scan must be horizontal, false if vertical
|
* @return true if a black point has been found, else false.
|
*/
|
private containsBlackPoint;
|
}
|