Many changes to the C++ port.
[zxing.git] / cpp / core / src / MonochromeBitmapSource.cpp
diff --git a/cpp/core/src/MonochromeBitmapSource.cpp b/cpp/core/src/MonochromeBitmapSource.cpp
deleted file mode 100644 (file)
index d43d03d..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- *  MonochromeBitmapSource.cpp
- *  zxing
- *
- *  Created by Christian Brunschen on 12/05/2008.
- *  Copyright 2008 Google UK. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "MonochromeBitmapSource.h"
-#include "BlackPointEstimator.h"
-#include "ReaderException.h"
-#include <limits>
-
-#define LUMINANCE_BITS (5)
-#define LUMINANCE_SHIFT (8 - LUMINANCE_BITS)
-#define LUMINANCE_BUCKETS (1 << LUMINANCE_BITS)
-
-using namespace std;
-
-MonochromeBitmapSource::MonochromeBitmapSource() :
-blackPoint_(numeric_limits<unsigned char>::max()),
-lastEstimationMethod_(BlackPointEstimationMethod_None), 
-lastEstimationArgument_(-1) {
-}
-
-
-bool MonochromeBitmapSource::isBlack(size_t x, size_t y) {
-  return getPixel(x, y) < blackPoint_;
-}
-
-Ref<BitArray> MonochromeBitmapSource::getBlackRow(size_t y,
-                                                  Ref<BitArray> row, 
-                                                  size_t startX,
-                                                  size_t getWidth) {
-  Ref<BitArray> result(row ? row : new BitArray(getWidth));
-  if (row) {
-    result->clear();
-  }
-  valarray<unsigned char> pixelRow(getWidth);
-  for (size_t i = 0; i < getWidth; i++) {
-    pixelRow[i] = getPixel(startX + i, y);
-  }
-  
-  // If the current decoder calculated the blackPoint based on one row, 
-  // assume we're trying to decode a 1D barcode, and apply some sharpening.
-  if (lastEstimationMethod_ == BlackPointEstimationMethod_RowSampling) {
-    unsigned int left = pixelRow[0];
-    unsigned int center = pixelRow[1];
-    for (size_t i = 1; i < getWidth - 1; i++) {
-      unsigned int right = pixelRow[i+1];
-      // Simple -1 4 -1 box filter with a weight of 2
-      unsigned int luminance = ((center << 2) - left - right) >> 1;
-      if (luminance < blackPoint_) {
-        result->set(i);
-      }
-      left = center;
-      center = right;
-    }
-  } else {
-    for (size_t i = 0; i < getWidth; i++) {
-      if (pixelRow[i] < blackPoint_) {
-        result->set(i);
-      }
-    }
-  }
-  
-  return result;
-}
-
-void MonochromeBitmapSource::
-estimateBlackPoint(BlackPointEstimationMethod method, int arg) {
-  size_t width = getWidth();
-  size_t height = getHeight();
-  if (method != lastEstimationMethod_ || arg != lastEstimationArgument_) {
-    valarray<int> histogram(LUMINANCE_BUCKETS);
-    if (method == BlackPointEstimationMethod_2D) {
-      size_t minDimension = width < height ? width : height;
-      size_t startX = (width - minDimension) >> 1;
-      size_t startY = (height - minDimension) >> 1;
-      for (size_t n = 0; n < minDimension; n++) {
-        unsigned char pixel = getPixel(startX + n, startY + n);
-        histogram[pixel >> LUMINANCE_SHIFT]++;
-      }
-    } else if (method == BlackPointEstimationMethod_RowSampling) {
-      if (arg < 0 || arg >= (int)height) {
-        throw IllegalArgumentException
-        ("black point estimation argument out of range");
-      }
-      size_t y = static_cast<size_t> (arg);
-      for (size_t x = 0; x < width; x++) {
-        histogram[getPixel(x, y) >> LUMINANCE_SHIFT]++;
-      }
-    } else {
-      throw IllegalArgumentException
-      ("unknown black point estimation method");
-    }
-    
-    blackPoint_ = BlackPointEstimator::estimate(histogram) << LUMINANCE_SHIFT;    
-    lastEstimationMethod_ = method;
-    lastEstimationArgument_ = arg;
-  }
-}
-
-BlackPointEstimationMethod MonochromeBitmapSource::getLastEstimationMethod() {
-  return lastEstimationMethod_;
-}
-