Shape Descriptor, MatLabfiles in Java

Aachen@Info

Neues Mitglied
Guten Morgen liebe Java-Programmierer,

Ich stehe vor folgendem Problem, einer Aufgabe die mir mein Supervisor gab und ich mir nicht vorstellen kann, wie ich diese Aufgabe richtig implementieren soll.
Thematik ist ein sog. "Shape Descriptor".
Die Methode dazu bzw. die Art der Implementierung lautet folgendermaßen:

We introduce a very simple and intuitie shape descriptor. It can be computed for any set of points X on the plane. Given a Point A є X, a Shape Descriptor of point A denoted Sx(A) (S zum Index x von (A)) is a histogram of all triangles spanned by A and all pairs of points B,C є X, where points A,B,C must be different. Sx(A) (S zum Index x von (A)) is a 3D histogram of the angles BAC, and two distances AB and AC. In order to distinguish the two distances, we require that the triangle BCA is oriented clockwise. In order to make our descriptor scale invariant, the distances are normalized by the average pairwise distance of points in X. The shape descriptor S(X) of the set X is a joint 3D histogram of all points, i.e.:
S(X) = ∑{Sx(x) | x є X}.
Then, the similarity v(X,Y) between two sets X,Y is obtained by the standarf histogram intersection.
Our shape descriptor has been inspired by Carlsson, but it is different. Carlson considers only qualititive orientation of each triangle: oriented clock or counterclockwise. Our descriptor provides a full quantitative description of each triangle. This leads to a significiant increase in descriptive Power. The comparison of our triangle histogram shape similarity measure to toher measures is left out due to limited Space. Shape context considers pairwise relationship between points, while we consider relations between triples of points.

Da mir das alles sehr unklar erschien, übersetzte ich es ins Deutsche, bin mir aber nicht sicher bei der Übersetzung und somit der kompletten Aufgabenstellung.

Hier führen wir eine sehr simple und intuitive Formbeschreibung ein, womit jegliche Reihen von Punkten zweidimensional berechnet werden können.
Gegeben ist ein Punkt A є X, ein Formbeschreiber des Punktes A angegeben als
Sx(A) ist ein Histogram von allen Dreiecken, aufgespannt von Punkt A und allen Paaren der Punkte B,C є X, wobei die Punkte A,B,C nicht gleich sein dürfen, sich also voneinander unterscheiden.
Sx(A) ein 3D-Histogram der Winkel B,A,C, und der zwei Distanzen AB und AC. Um diese beiden Distanzen unterscheiden zu können, benötigen wir das Dreieck BCA, welches sich in Uhrzeigerrichtung orientiert. Um das Maß der Beschreiber unveränderlich zu machen, wurden die Distanzen normiert mit den durchschnittlichen Daten der paarweisen Distanzen der Punkte innerhalb von X. Der Formbeschreiber Sx der Reihe X ist ein verbundenes 3D-Histogramm aller Punkte.
Sprich : S(X) = ∑{Sx(x) | x є X}.
Dann, ist die Gleichartigkeit bzw. Andersartigkeit v(X,Y) zwischen zwei Reihen von Punkten X,Y entnommen vom Schnittpunkt des standard Histogramms.
Unser Formbezeichner wurde inspiriert von Carlsson, aber er ist dennoch anders. Carlson berücksichtige nur qualitativ Orientierung von jedem Dreieck, also mit und gegen den Uhrzeigersinn. Unser Deskriptor unterstützt eine vollständige quantitative Beschreibung jedes Dreiecks. Dies führte zu einem signifikanten Anstieg in der Intensität der Beschreibung. Die Maße der Form der Dreiecke innerhalb der Histogrammgleichartigkeit verglichen mit anderen Maßstäben ist aufgrund von zuwenig Platz ausgelassen worden. Forminhalte berücksichtigen paarweise Beziehungen zwischen zwei Punkten, während wir Beziehungen zwischen drei Punkten berücksichtigen.

Die Daten, welche ich nun auswerten soll, bzw. mit denen ich rechnen soll sind jedoch MatLab-Dateien, ich soll es aber in Java implementieren.

Das die Distanzen Vektoren sind und ich es mit dem Skalarprodukt errechnen kann, ist klar, jedoch wie zur Hölle soll der ganze Rest funktionieren bzw. die Realisierung dessen, innerhalb Java's mit matlab dateien? Habe mir bereits die Library Jmatio.jar runtergeladen und in mein Programm verknüpft, jedoch hab ich keine Ahnung darüber, wie ich nun weitermachen soll bzw. wie ich diese Dateien, in was für ienem Dateiformat auch immer umwandeln soll um sie in Java einzulesen.

Mein code sieht derzeit wie folgt aus:

Java:
import com.jmatio.io.*;
import com.jmatio.types.*;


public class Shapedescriptor {

	public void main(String[] args) {
	
		
	}
}

Also nichts.

Bitte um schnelle Hilfe,

LG,

Aachen@Informatik
 

Aachen@Info

Neues Mitglied
Ergänzung:

Java:
import java.io.File;
import java.io.IOException;

import com.jmatio.io.MatFileReader;
import com.jmatio.types.MLArray;


public class Shapedescriptor {

	public static void main(String[] args) {
	
		  File file = new File("Apple1.mat");
	        MatFileReader reader = null;
			try {
				reader = new MatFileReader( file );
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	        MLArray mlArray = reader.getMLArray( "cel" );
	        		
	}
}

Nun hab ich es von einer einzelnen Datei implementieren können, jedoch seh ich keine Ausgabe von den jeweiligen Werten bzw. etwas mit dem ich arbeiten kann.

LG,

Aachen@Informatik
 

Ähnliche Java Themen

Neue Themen


Oben