- averageModuleSize /= (float) size;\r
- // We don't have java.util.Collections in J2ME\r
- Collections.insertionSort(possibleCenters, new ClosestToAverageComparator(averageModuleSize));\r
+ float average = totalModuleSize / (float) startSize;\r
+ for (int i = 0; i < possibleCenters.size() && possibleCenters.size() > 3; i++) {\r
+ FinderPattern pattern = (FinderPattern) possibleCenters.get(i);\r
+ if (Math.abs(pattern.getEstimatedModuleSize() - average) > 0.2f * average) {\r
+ possibleCenters.remove(i);\r
+ i--;\r
+ }\r
+ }\r
+ }\r
+\r
+ if (possibleCenters.size() > 3) {\r
+ // Throw away all but those first size candidate points we found.\r
+ Collections.insertionSort(possibleCenters, new CenterComparator()); \r
+ possibleCenters.setSize(3);\r