mirror of
https://github.com/zxing/zxing.git
synced 2025-03-05 20:48:51 -08:00
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:
parent
2cb813b088
commit
345a55c6c7
|
@ -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++) {
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue