src/textord/textlineprojection.cpp
int TextlineProjection::EvaluateColPartition(const ColPartition &part, const DENORM *denorm,
                                             bool debug) const {
  if (part.IsSingleton()) {
    return EvaluateBox(part.bounding_box(), denorm, debug);
  }
  // Test vertical orientation.
  TBOX box = part.bounding_box();
  // Use the partition median for left/right.
  box.set_left(part.median_left());
  box.set_right(part.median_right());
  int vresult = EvaluateBox(box, denorm, debug);

  // Test horizontal orientation.
  box = part.bounding_box();
  // Use the partition median for top/bottom.
  box.set_top(part.median_top());
  box.set_bottom(part.median_bottom());
  int hresult = EvaluateBox(box, denorm, debug);
  if (debug) {
    tprintf("Partition hresult=%d, vresult=%d from:", hresult, vresult);
    part.bounding_box().print();
    part.Print();
  }
  return hresult >= -vresult ? hresult : vresult;
}
// Evaluates the textlineiness of a ColPartition. Uses EvaluateBox below,
// but uses the median top/bottom for horizontal and median left/right for
// vertical instead of the bounding box edges.
// Evaluates for both horizontal and vertical and returns the best result,
// with a positive value for horizontal and a negative value for vertical.
Evaluates the textlineiness of a ColPartition. Uses EvaluateBox below,
but uses the median top/bottom for horizontal and median left/right for
vertical instead of the bounding box edges.
Evaluates for both horizontal and vertical and returns the best result,
with a positive value for horizontal and a negative value for vertical.
Evaluates the textlineiness of a ColPartition . Uses EvaluateBox below but uses the median top / bottom for horizontal and median left / right for vertical instead of the bounding box edges . Evaluates for both horizontal and vertical and returns the best result with a positive value for horizontal and a negative value for vertical .
int TextlineProjection::EvaluateColPartition(const ColPartition &part, const DENORM *denorm,
                                             bool debug) const {
  if (part.IsSingleton()) {
    return EvaluateBox(part.bounding_box(), denorm, debug);
  }
  TBOX box = part.bounding_box();
  box.set_left(part.median_left());
  box.set_right(part.median_right());
  int vresult = EvaluateBox(box, denorm, debug);
  box = part.bounding_box();
  box.set_top(part.median_top());
  box.set_bottom(part.median_bottom());
  int hresult = EvaluateBox(box, denorm, debug);
  if (debug) {
    tprintf("Partition hresult=%d, vresult=%d from:", hresult, vresult);
    part.bounding_box().print();
    part.Print();
  }
  return hresult >= -vresult ? hresult : vresult;
}
int TextlineProjection :: EvaluateColPartition ( const ColPartition & part , const DENORM * denorm , bool debug ) const { if ( part . IsSingleton ( ) ) { return EvaluateBox ( part . bounding_box ( ) , denorm , debug ) ; } TBOX box = part . bounding_box ( ) ; box . set_left ( part . median_left ( ) ) ; box . set_right ( part . median_right ( ) ) ; int vresult = EvaluateBox ( box , denorm , debug ) ; box = part . bounding_box ( ) ; box . set_top ( part . median_top ( ) ) ; box . set_bottom ( part . median_bottom ( ) ) ; int hresult = EvaluateBox ( box , denorm , debug ) ; if ( debug ) { tprintf ( " " , hresult , vresult ) ; part . bounding_box ( ) . print ( ) ; part . Print ( ) ; } return hresult >= - vresult ? hresult : vresult ; }
Evaluates the textlineiness of a ColPartition.
Evaluates the textlineiness of a ColPartition .
// Test vertical orientation. // Use the partition median for left/right. // Test horizontal orientation. // Use the partition median for top/bottom.