detect() {
			const cornerPoints = this.rectangleDetector.detect();
			let points = this.detectSolid1(cornerPoints);
			points = this.detectSolid2(points);
			points[3] = this.correctTopRight(points);
			if (!points[3]) {
				throw new NotFoundException();
			}
			points = this.shiftToModuleCenter(points);
			const topLeft = points[0];
			const bottomLeft = points[1];
			const bottomRight = points[2];
			const topRight = points[3];
			let dimensionTop = this.transitionsBetween(topLeft, topRight) + 1;
			let dimensionRight = this.transitionsBetween(bottomRight, topRight) + 1;
			if ((dimensionTop & 0x01) === 1) {
				dimensionTop += 1;
			}
			if ((dimensionRight & 0x01) === 1) {
				dimensionRight += 1;
			}
			if (4 * dimensionTop < 7 * dimensionRight && 4 * dimensionRight < 7 * dimensionTop) {
				// The matrix is square
				dimensionTop = dimensionRight = Math.max(dimensionTop, dimensionRight);
			}
			let bits = Detector$1.sampleGrid(this.image, topLeft, bottomLeft, bottomRight, topRight, dimensionTop, dimensionRight);
			return new DetectorResult(bits, [topLeft, bottomLeft, bottomRight, topRight]);
		}
<p>Detects a Data Matrix Code in an image.</p>

@return {@link DetectorResult} encapsulating results of detecting a Data Matrix Code
@throws NotFoundException if no Data Matrix Code can be found