From 0211d09db1bd863fc0b3f9033e47dfd79866331f Mon Sep 17 00:00:00 2001 From: srowen Date: Mon, 21 Jul 2008 21:52:43 +0000 Subject: [PATCH] Quick shortening of a method in FinderPatternFinder that I just noticed git-svn-id: http://zxing.googlecode.com/svn/trunk@523 59b500cc-1b3d-0410-9834-0bbf25fbcc57 --- .../qrcode/detector/FinderPatternFinder.java | 33 +++++++------------ 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/core/src/com/google/zxing/qrcode/detector/FinderPatternFinder.java b/core/src/com/google/zxing/qrcode/detector/FinderPatternFinder.java index ea66cad0..6ec97b1f 100755 --- a/core/src/com/google/zxing/qrcode/detector/FinderPatternFinder.java +++ b/core/src/com/google/zxing/qrcode/detector/FinderPatternFinder.java @@ -473,28 +473,19 @@ final class FinderPatternFinder { throw new ReaderException("Could not find three finder patterns"); } - if (size == 3) { - // Found just enough -- hope these are good! - return new FinderPattern[]{ - (FinderPattern) possibleCenters.elementAt(0), - (FinderPattern) possibleCenters.elementAt(1), - (FinderPattern) possibleCenters.elementAt(2) - }; - } - - possibleCenters.setSize(size); - - // Hmm, multiple found. We need to pick the best three. Find the most - // popular ones whose module size is nearest the average - - float averageModuleSize = 0.0f; - for (int i = 0; i < size; i++) { - averageModuleSize += ((FinderPattern) possibleCenters.elementAt(i)).getEstimatedModuleSize(); + if (size > 3) { + // Throw away all but those first size candidate points we found. + possibleCenters.setSize(size); + // We need to pick the best three. Find the most + // popular ones whose module size is nearest the average + float averageModuleSize = 0.0f; + for (int i = 0; i < size; i++) { + averageModuleSize += ((FinderPattern) possibleCenters.elementAt(i)).getEstimatedModuleSize(); + } + averageModuleSize /= (float) size; + // We don't have java.util.Collections in J2ME + Collections.insertionSort(possibleCenters, new ClosestToAverageComparator(averageModuleSize)); } - averageModuleSize /= (float) size; - - // We don't have java.util.Collections in J2ME - Collections.insertionSort(possibleCenters, new ClosestToAverageComparator(averageModuleSize)); return new FinderPattern[]{ (FinderPattern) possibleCenters.elementAt(0), -- 2.20.1