s354155 created page: Schnittstelle authored by Maximilian Hirschberger's avatar Maximilian Hirschberger
# Interne Schnittstelle
## Importieren
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.
Beachte: Nullpunkt oben links.