| OLD | NEW | 
|---|
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 
| 6 // Original code is licensed as follows: | 6 // Original code is licensed as follows: | 
| 7 /* | 7 /* | 
| 8  * Copyright 2009 ZXing authors | 8  * Copyright 2009 ZXing authors | 
| 9  * | 9  * | 
| 10  * Licensed under the Apache License, Version 2.0 (the "License"); | 10  * Licensed under the Apache License, Version 2.0 (the "License"); | 
| 11  * you may not use this file except in compliance with the License. | 11  * you may not use this file except in compliance with the License. | 
| 12  * You may obtain a copy of the License at | 12  * You may obtain a copy of the License at | 
| 13  * | 13  * | 
| 14  *      http://www.apache.org/licenses/LICENSE-2.0 | 14  *      http://www.apache.org/licenses/LICENSE-2.0 | 
| 15  * | 15  * | 
| 16  * Unless required by applicable law or agreed to in writing, software | 16  * Unless required by applicable law or agreed to in writing, software | 
| 17  * distributed under the License is distributed on an "AS IS" BASIS, | 17  * distributed under the License is distributed on an "AS IS" BASIS, | 
| 18  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 18  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
| 19  * See the License for the specific language governing permissions and | 19  * See the License for the specific language governing permissions and | 
| 20  * limitations under the License. | 20  * limitations under the License. | 
| 21  */ | 21  */ | 
| 22 | 22 | 
| 23 #include "xfa/src/fxbarcode/BC_Binarizer.h" | 23 #include "xfa/src/fxbarcode/BC_Binarizer.h" | 
| 24 #include "xfa/src/fxbarcode/BC_LuminanceSource.h" | 24 #include "xfa/src/fxbarcode/BC_LuminanceSource.h" | 
| 25 #include "xfa/src/fxbarcode/barcode.h" |  | 
| 26 #include "xfa/src/fxbarcode/common/BC_CommonBitArray.h" | 25 #include "xfa/src/fxbarcode/common/BC_CommonBitArray.h" | 
| 27 #include "xfa/src/fxbarcode/common/BC_CommonBitMatrix.h" | 26 #include "xfa/src/fxbarcode/common/BC_CommonBitMatrix.h" | 
| 28 #include "xfa/src/fxbarcode/common/BC_GlobalHistogramBinarizer.h" | 27 #include "xfa/src/fxbarcode/common/BC_GlobalHistogramBinarizer.h" | 
|  | 28 #include "xfa/src/fxbarcode/utils.h" | 
|  | 29 | 
| 29 const int32_t LUMINANCE_BITS = 5; | 30 const int32_t LUMINANCE_BITS = 5; | 
| 30 const int32_t LUMINANCE_SHIFT = 8 - LUMINANCE_BITS; | 31 const int32_t LUMINANCE_SHIFT = 8 - LUMINANCE_BITS; | 
| 31 const int32_t LUMINANCE_BUCKETS = 1 << LUMINANCE_BITS; | 32 const int32_t LUMINANCE_BUCKETS = 1 << LUMINANCE_BITS; | 
|  | 33 | 
| 32 CBC_GlobalHistogramBinarizer::CBC_GlobalHistogramBinarizer( | 34 CBC_GlobalHistogramBinarizer::CBC_GlobalHistogramBinarizer( | 
| 33     CBC_LuminanceSource* source) | 35     CBC_LuminanceSource* source) | 
| 34     : CBC_Binarizer(source) {} | 36     : CBC_Binarizer(source) {} | 
| 35 CBC_GlobalHistogramBinarizer::~CBC_GlobalHistogramBinarizer() {} | 37 CBC_GlobalHistogramBinarizer::~CBC_GlobalHistogramBinarizer() {} | 
| 36 CBC_CommonBitArray* CBC_GlobalHistogramBinarizer::GetBlackRow( | 38 CBC_CommonBitArray* CBC_GlobalHistogramBinarizer::GetBlackRow( | 
| 37     int32_t y, | 39     int32_t y, | 
| 38     CBC_CommonBitArray* row, | 40     CBC_CommonBitArray* row, | 
| 39     int32_t& e) { | 41     int32_t& e) { | 
| 40   CBC_LuminanceSource* source = GetLuminanceSource(); | 42   CBC_LuminanceSource* source = GetLuminanceSource(); | 
| 41   int32_t width = source->GetWidth(); | 43   int32_t width = source->GetWidth(); | 
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 160     int32_t fromFirst = x - firstPeak; | 162     int32_t fromFirst = x - firstPeak; | 
| 161     int32_t score = fromFirst * fromFirst * (secondPeak - x) * | 163     int32_t score = fromFirst * fromFirst * (secondPeak - x) * | 
| 162                     (maxBucketCount - buckets[x]); | 164                     (maxBucketCount - buckets[x]); | 
| 163     if (score > bestValleyScore) { | 165     if (score > bestValleyScore) { | 
| 164       bestValley = x; | 166       bestValley = x; | 
| 165       bestValleyScore = score; | 167       bestValleyScore = score; | 
| 166     } | 168     } | 
| 167   } | 169   } | 
| 168   return bestValley << LUMINANCE_SHIFT; | 170   return bestValley << LUMINANCE_SHIFT; | 
| 169 } | 171 } | 
| OLD | NEW | 
|---|