crossCheckVertical(startI /*int*/, centerJ /*int*/, maxCount /*int*/, originalStateCountTotal /*int*/) {
			const image = this.image;
			const maxI = image.getHeight();
			const stateCount = this.getCrossCheckStateCount();
			// Start counting up from center
			let i = startI;
			while (i >= 0 && image.get(centerJ, i)) {
				stateCount[2]++;
				i--;
			}
			if (i < 0) {
				return NaN;
			}
			while (i >= 0 && !image.get(centerJ, i) && stateCount[1] <= maxCount) {
				stateCount[1]++;
				i--;
			}
			// If already too many modules in this state or ran off the edge:
			if (i < 0 || stateCount[1] > maxCount) {
				return NaN;
			}
			while (i >= 0 && image.get(centerJ, i) && stateCount[0] <= maxCount) {
				stateCount[0]++;
				i--;
			}
			if (stateCount[0] > maxCount) {
				return NaN;
			}
			// Now also count down from center
			i = startI + 1;
			while (i < maxI && image.get(centerJ, i)) {
				stateCount[2]++;
				i++;
			}
			if (i === maxI) {
				return NaN;
			}
			while (i < maxI && !image.get(centerJ, i) && stateCount[3] < maxCount) {
				stateCount[3]++;
				i++;
			}
			if (i === maxI || stateCount[3] >= maxCount) {
				return NaN;
			}
			while (i < maxI && image.get(centerJ, i) && stateCount[4] < maxCount) {
				stateCount[4]++;
				i++;
			}
			if (stateCount[4] >= maxCount) {
				return NaN;
			}
			// If we found a finder-pattern-like section, but its size is more than 40% different than
			// the original, assume it's a false positive
			const stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2] + stateCount[3] +
				stateCount[4];
			if (5 * Math.abs(stateCountTotal - originalStateCountTotal) >= 2 * originalStateCountTotal) {
				return NaN;
			}
			return FinderPatternFinder.foundPatternCross(stateCount) ? FinderPatternFinder.centerFromEnd(stateCount, i) : NaN;
		}
<p>After a horizontal scan finds a potential finder pattern, this method
"cross-checks" by scanning down vertically through the center of the possible
finder pattern to see if the same proportion is detected.</p>

@param startI row where a finder pattern was detected
@param centerJ center of the section that appears to cross a finder pattern
@param maxCount maximum reasonable number of modules that should be
observed in any reading state, based on the results of the horizontal scan
@return vertical center of finder pattern, or {@link Float#NaN} if not found