namespace zxing {
- Binarizer::Binarizer(Ref<LuminanceSource> source) : source_(source), array_(NULL), matrix_(NULL) {
+ Binarizer::Binarizer(Ref<LuminanceSource> source) : source_(source), array_(NULL), matrix_(NULL), cached_y_(-1) {
}
Binarizer::~Binarizer() {
}
Ref<BitArray> Binarizer::getBlackRow(int y, Ref<BitArray> row){
- if (array_ == NULL)
+ if (array_ == NULL && cached_y_ != y) {
array_ = estimateBlackRow(y, row);
+ cached_y_ = y;
+ }
return array_;
}
Ref<LuminanceSource> source_;
Ref<BitArray> array_;
Ref<BitMatrix> matrix_;
+ int cached_y_;
public:
Binarizer(Ref<LuminanceSource> source);
namespace zxing {
- BinaryBitmap::BinaryBitmap(Ref<Binarizer> binarizer) : bits_(NULL), array_bits_(NULL), binarizer_(binarizer) {
+ BinaryBitmap::BinaryBitmap(Ref<Binarizer> binarizer) : bits_(NULL), array_bits_(NULL), binarizer_(binarizer), cached_y_(-1) {
}
}
Ref<BitArray> BinaryBitmap::getBlackRow(int y, Ref<BitArray> row) {
- if (array_bits_ == NULL) {
+ if (array_bits_ == NULL && cached_y_ != y) {
array_bits_ = binarizer_->getBlackRow(y, row);
+ cached_y_ = y;
}
return array_bits_;
}
Ref<BitMatrix> bits_;
Ref<BitArray> array_bits_;
Ref<Binarizer> binarizer_;
+ int cached_y_;
public:
BinaryBitmap(Ref<Binarizer> binarizer);