ro.mosc.reco.preprocessing
Class VectorExtractor

java.lang.Object
  extended by ro.mosc.reco.preprocessing.VectorExtractor

public class VectorExtractor
extends java.lang.Object

Image vectorisation util class.


Field Summary
(package private)  int h
           
(package private)  int[][] imgMatrix
           
static double MAX_ACCEPTED_RATIO
           
static double MIN_DISTANCE
           
(package private)  int w
           
 
Constructor Summary
VectorExtractor(int[][] imgMatrix, int width, int height)
           
 
Method Summary
 java.util.ArrayList<java.util.ArrayList<java.awt.Point>> approximateBySegments(java.util.ArrayList<java.util.ArrayList<java.awt.Point>> originalPointStringList)
           
private  java.lang.String display(java.awt.geom.Line2D line)
           
 java.util.ArrayList<java.util.ArrayList<java.awt.Point>> extractVector()
           
protected  double getAreaPerimeterRation(java.awt.Point p1, java.awt.Point p2, java.awt.Point p3)
           
 java.util.ArrayList<java.awt.geom.Line2D.Double> joinSegments(java.util.ArrayList<java.awt.geom.Line2D.Double> segmentsInput)
           
private  double lenght(java.awt.geom.Line2D line)
          Calculates the lenght of a line.
 java.util.ArrayList<java.awt.geom.Line2D.Double> pointsStringToLines(java.util.ArrayList<java.util.ArrayList<java.awt.Point>> pointStringList)
          Transform a list of lists of points into corresponding list of segments.
private  double relativeAngle(java.awt.geom.Line2D line1, java.awt.geom.Line2D line2)
          Compute the "relative" angle of the GIVEN lines.
 java.util.ArrayList<java.awt.geom.Line2D.Double> removeSmallSegments(java.util.ArrayList<java.awt.geom.Line2D.Double> segments)
          Remove small segments
private  double slope(java.awt.geom.Line2D line)
          Compute the "relative" slope of the lines.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MAX_ACCEPTED_RATIO

public static double MAX_ACCEPTED_RATIO

MIN_DISTANCE

public static double MIN_DISTANCE

imgMatrix

int[][] imgMatrix

w

int w

h

int h
Constructor Detail

VectorExtractor

public VectorExtractor(int[][] imgMatrix,
                       int width,
                       int height)
Method Detail

extractVector

public java.util.ArrayList<java.util.ArrayList<java.awt.Point>> extractVector()

approximateBySegments

public java.util.ArrayList<java.util.ArrayList<java.awt.Point>> approximateBySegments(java.util.ArrayList<java.util.ArrayList<java.awt.Point>> originalPointStringList)

getAreaPerimeterRation

protected double getAreaPerimeterRation(java.awt.Point p1,
                                        java.awt.Point p2,
                                        java.awt.Point p3)

joinSegments

public java.util.ArrayList<java.awt.geom.Line2D.Double> joinSegments(java.util.ArrayList<java.awt.geom.Line2D.Double> segmentsInput)

pointsStringToLines

public java.util.ArrayList<java.awt.geom.Line2D.Double> pointsStringToLines(java.util.ArrayList<java.util.ArrayList<java.awt.Point>> pointStringList)
Transform a list of lists of points into corresponding list of segments.

Parameters:
pointStringList - a list of lists of points.
Returns:
a list of lines.

removeSmallSegments

public java.util.ArrayList<java.awt.geom.Line2D.Double> removeSmallSegments(java.util.ArrayList<java.awt.geom.Line2D.Double> segments)
Remove small segments

Parameters:
segments -
Returns:
new segments list

display

private java.lang.String display(java.awt.geom.Line2D line)

slope

private double slope(java.awt.geom.Line2D line)
Compute the "relative" slope of the lines.

Parameters:
line - first line
Returns:
a numeric value closer to 0 if the two lines are "almost" paralel.

relativeAngle

private double relativeAngle(java.awt.geom.Line2D line1,
                             java.awt.geom.Line2D line2)
Compute the "relative" angle of the GIVEN lines.

Parameters:
line1 - first line
line2 - second line
Returns:
a numeric value closer to 0 if the two lines are "almost" paralel.

lenght

private double lenght(java.awt.geom.Line2D line)
Calculates the lenght of a line.

Parameters:
line - the line we want to mesure
Returns:
line lenght