8 * Created by Christian Brunschen on 14/05/2008.
9 * Copyright 2008 ZXing authors All rights reserved.
11 * Licensed under the Apache License, Version 2.0 (the "License");
12 * you may not use this file except in compliance with the License.
13 * You may obtain a copy of the License at
15 * http://www.apache.org/licenses/LICENSE-2.0
17 * Unless required by applicable law or agreed to in writing, software
18 * distributed under the License is distributed on an "AS IS" BASIS,
19 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20 * See the License for the specific language governing permissions and
21 * limitations under the License.
24 #include <zxing/common/Counted.h>
25 #include <zxing/common/DetectorResult.h>
26 #include <zxing/common/BitMatrix.h>
27 #include <zxing/qrcode/detector/AlignmentPattern.h>
28 #include <zxing/common/PerspectiveTransform.h>
33 class Detector : public Counted {
35 Ref<BitMatrix> image_;
38 static Ref<BitMatrix> sampleGrid(Ref<BitMatrix> image, int dimension, Ref<PerspectiveTransform>);
39 static int computeDimension(Ref<ResultPoint> topLeft, Ref<ResultPoint> topRight, Ref<ResultPoint> bottomLeft,
41 float calculateModuleSize(Ref<ResultPoint> topLeft, Ref<ResultPoint> topRight, Ref<ResultPoint> bottomLeft);
42 float calculateModuleSizeOneWay(Ref<ResultPoint> pattern, Ref<ResultPoint> otherPattern);
43 float sizeOfBlackWhiteBlackRunBothWays(int fromX, int fromY, int toX, int toY);
44 float sizeOfBlackWhiteBlackRun(int fromX, int fromY, int toX, int toY);
45 Ref<AlignmentPattern> findAlignmentInRegion(float overallEstModuleSize, int estAlignmentX, int estAlignmentY,
46 float allowanceFactor);
49 static Ref<PerspectiveTransform> createTransform(Ref<ResultPoint> topLeft, Ref<ResultPoint> topRight, Ref <
50 ResultPoint > bottomLeft, Ref<ResultPoint> alignmentPattern, int dimension);
52 Detector(Ref<BitMatrix> image);
53 Ref<DetectorResult> detect();
58 #endif // __DETECTOR_H__