Um die Schnittstelle nutzen zu können müssen alle in der pom.xml Datei aufgeführten dependencies (Aktuell opencv, commons-cli, encog-core und junit) und das package swp.omr importiert werden.
## Klassen und ihre Methoden
### Recognition
Schnittstelle für andere Programe.
*`recognize(Mat matrix)`
*`recognize(File file)`
*`recognize(String path)`
Wobei jede dieser Methoden als Rückgabewert ein Objekt der Klasse RecognitionResult besitzt.
### RecognitionResult
Instanz der Klasse enthält alle Ergebnisse des Programs zum weiterverarbeiten.
*`picture()` gibt das Originalbild als Mat (siehe opencv) zurück
*`rotatedPicture` gibt das Originalbild rotiert als Mat zurück
*`lines()` gibt eine Liste über Objekte der Klasse LineObject zurück
*`rotationAngle()` gibt den Wert um den das Originalbild rotiert wurde als double zurück
*`nodes()` gibt eine Liste über Objekte der Klasse Node zurück
*`key()` gibt einen Optional eines Objektes der Klasse Node zurück, welcher den Notenschlüssel repräsentiert.
### LineObject
Repräsentiert eine erkannte Notenzeile.
*`getStart()` gibt den Startpunkt der Linie als Point (siehe opencv) zurück
*`getEnd()` gibt den Endpunkt der Linie als Point zurück
*`setStart(Point start)` setzt den Startpunkt der Linie neu
*`setEnd(Point end)` gibt den Endpunkt der Linie neu
Beachte: Nullpunkt oben links.
### Node
Repräsentiert eine erkannte Noten oder den Notenschlüssel.
Relevante Methoden:
*`type()` gibt den Typ der Note als enum zurück (Normal, Diagonal oder Key)
*`top()`
*`bottom()`
*`left()`
*`right()`
*`width()`
*`height()`
Wobei die Rückgabewerte vom Typ integer sind und selbsterklärend sind.