// Copyright 2014 PDFium Authors. All rights reserved. | |
// Use of this source code is governed by a BSD-style license that can be | |
// found in the LICENSE file. | |
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | |
#ifndef _BC_WHITERECTANLEDETECTOR_H_ | |
#define _BC_WHITERECTANLEDETECTOR_H_ | |
class CBC_CommonBitMatrix; | |
class CBC_ResultPoint; | |
class CBC_WhiteRectangleDetector { | |
public: | |
CBC_WhiteRectangleDetector(CBC_CommonBitMatrix* image); | |
CBC_WhiteRectangleDetector(CBC_CommonBitMatrix* image, | |
int32_t initSize, | |
int32_t x, | |
int32_t y); | |
virtual ~CBC_WhiteRectangleDetector(); | |
CFX_PtrArray* Detect(int32_t& e); | |
virtual void Init(int32_t& e); | |
private: | |
int32_t Round(float d); | |
CBC_ResultPoint* GetBlackPointOnSegment(FX_FLOAT aX, | |
FX_FLOAT aY, | |
FX_FLOAT bX, | |
FX_FLOAT bY); | |
int32_t DistanceL2(FX_FLOAT aX, FX_FLOAT aY, FX_FLOAT bX, FX_FLOAT bY); | |
CFX_PtrArray* CenterEdges(CBC_ResultPoint* y, | |
CBC_ResultPoint* z, | |
CBC_ResultPoint* x, | |
CBC_ResultPoint* t); | |
FX_BOOL ContainsBlackPoint(int32_t a, | |
int32_t b, | |
int32_t fixed, | |
FX_BOOL horizontal); | |
const static int32_t INIT_SIZE; | |
const static int32_t CORR; | |
CBC_CommonBitMatrix* m_image; | |
int32_t m_height; | |
int32_t m_width; | |
int32_t m_leftInit; | |
int32_t m_rightInit; | |
int32_t m_downInit; | |
int32_t m_upInit; | |
}; | |
#endif |