getMatrixCenter() {
			let pointA;
			let pointB;
			let pointC;
			let pointD;
			// Get a white rectangle that can be the border of the matrix in center bull's eye or
			try {
				let cornerPoints = new WhiteRectangleDetector(this.image).detect();
				pointA = cornerPoints[0];
				pointB = cornerPoints[1];
				pointC = cornerPoints[2];
				pointD = cornerPoints[3];
			}
			catch (e) {
				// This exception can be in case the initial rectangle is white
				// In that case, surely in the bull's eye, we try to expand the rectangle.
				let cx = this.image.getWidth() / 2;
				let cy = this.image.getHeight() / 2;
				pointA = this.getFirstDifferent(new Point(cx + 7, cy - 7), false, 1, -1).toResultPoint();
				pointB = this.getFirstDifferent(new Point(cx + 7, cy + 7), false, 1, 1).toResultPoint();
				pointC = this.getFirstDifferent(new Point(cx - 7, cy + 7), false, -1, 1).toResultPoint();
				pointD = this.getFirstDifferent(new Point(cx - 7, cy - 7), false, -1, -1).toResultPoint();
			}
			// Compute the center of the rectangle
			let cx = MathUtils.round((pointA.getX() + pointD.getX() + pointB.getX() + pointC.getX()) / 4.0);
			let cy = MathUtils.round((pointA.getY() + pointD.getY() + pointB.getY() + pointC.getY()) / 4.0);
			// Redetermine the white rectangle starting from previously computed center.
			// This will ensure that we end up with a white rectangle in center bull's eye
			// in order to compute a more accurate center.
			try {
				let cornerPoints = new WhiteRectangleDetector(this.image, 15, cx, cy).detect();
				pointA = cornerPoints[0];
				pointB = cornerPoints[1];
				pointC = cornerPoints[2];
				pointD = cornerPoints[3];
			}
			catch (e) {
				// This exception can be in case the initial rectangle is white
				// In that case we try to expand the rectangle.
				pointA = this.getFirstDifferent(new Point(cx + 7, cy - 7), false, 1, -1).toResultPoint();
				pointB = this.getFirstDifferent(new Point(cx + 7, cy + 7), false, 1, 1).toResultPoint();
				pointC = this.getFirstDifferent(new Point(cx - 7, cy + 7), false, -1, 1).toResultPoint();
				pointD = this.getFirstDifferent(new Point(cx - 7, cy - 7), false, -1, -1).toResultPoint();
			}
			// Recompute the center of the rectangle
			cx = MathUtils.round((pointA.getX() + pointD.getX() + pointB.getX() + pointC.getX()) / 4.0);
			cy = MathUtils.round((pointA.getY() + pointD.getY() + pointB.getY() + pointC.getY()) / 4.0);
			return new Point(cx, cy);
		}
Finds a candidate center point of an Aztec code from an image

@return the center point