Guard against exception case discovered in new DM code, clean up its formatting a bit

git-svn-id: https://zxing.googlecode.com/svn/trunk@1620 59b500cc-1b3d-0410-9834-0bbf25fbcc57
This commit is contained in:
srowen 2010-10-10 21:26:44 +00:00
parent 2cb813b088
commit 345a55c6c7
2 changed files with 25 additions and 13 deletions

View file

@ -46,6 +46,9 @@ public final class DefaultGridSampler extends GridSampler {
int dimensionX,
int dimensionY,
PerspectiveTransform transform) throws NotFoundException {
if (dimensionX <= 0 || dimensionY <= 0) {
throw NotFoundException.getNotFoundInstance();
}
BitMatrix bits = new BitMatrix(dimensionX, dimensionY);
float[] points = new float[dimensionX << 1];
for (int y = 0; y < dimensionY; y++) {

View file

@ -158,13 +158,14 @@ public final class Detector {
}
dimensionRight += 2;
BitMatrix bits = null;
ResultPoint correctedTopRight = null;
BitMatrix bits;
ResultPoint correctedTopRight;
if (dimensionTop >= dimensionRight * 2 || dimensionRight >= dimensionTop * 2){
//The matrix is rectangular
correctedTopRight = correctTopRightRectangular(bottomLeft, bottomRight, topLeft, topRight, dimensionTop, dimensionRight);
correctedTopRight =
correctTopRightRectangular(bottomLeft, bottomRight, topLeft, topRight, dimensionTop, dimensionRight);
if (correctedTopRight == null){
correctedTopRight = topRight;
}
@ -178,11 +179,11 @@ public final class Detector {
}
if ((dimensionRight & 0x01) == 1) {
// it can't be odd, so, round... up?
dimensionRight++;
}
bits = sampleGrid(image, topLeft, bottomLeft, bottomRight, correctedTopRight, dimensionTop, dimensionRight);
// it can't be odd, so, round... up?
dimensionRight++;
}
bits = sampleGrid(image, topLeft, bottomLeft, bottomRight, correctedTopRight, dimensionTop, dimensionRight);
} else {
//The matrix is square
@ -202,7 +203,13 @@ public final class Detector {
dimensionCorrected++;
}
bits = sampleGrid(image, topLeft, bottomLeft, bottomRight, correctedTopRight, dimensionCorrected, dimensionCorrected);
bits = sampleGrid(image,
topLeft,
bottomLeft,
bottomRight,
correctedTopRight,
dimensionCorrected,
dimensionCorrected);
}
@ -210,7 +217,8 @@ public final class Detector {
}
/**
* Calculates the position of the white top right module using the output of the rectangle detector for a rectangular matrix
* Calculates the position of the white top right module using the output of the rectangle detector
* for a rectangular matrix
*/
private ResultPoint correctTopRightRectangular(ResultPoint bottomLeft,
ResultPoint bottomRight, ResultPoint topLeft, ResultPoint topRight,
@ -249,10 +257,11 @@ public final class Detector {
}
return c2;
}
}
/**
* Calculates the position of the white top right module using the output of the rectangle detector for a square matrix
/**
* Calculates the position of the white top right module using the output of the rectangle detector
* for a square matrix
*/
private ResultPoint correctTopRight(ResultPoint bottomLeft,
ResultPoint bottomRight,