06.10.2013 Aufrufe

View - JUWEL - Forschungszentrum Jülich

View - JUWEL - Forschungszentrum Jülich

View - JUWEL - Forschungszentrum Jülich

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

50 3 Praktische Aspekte<br />

jeden Stapel einzeln vorgenommen werden.<br />

Zusätzlich zur Speicherung der Serien von zweidimensionalen Bildern wird jeder Stapel als<br />

dreidimensionales Metafile abgespeichert. Dieses Bildformat besteht aus einer Headerdatei<br />

mit der Endung .mhd und einer Binärdatei der Endung .raw.<br />

Während des Registrierungsprozesses werden die optimalen Transformationsparameter in<br />

der Klasse TransformationParameterList gespeichert. Diese Klasse speichert für<br />

jedes zweidimensionale Bild einzeln die jeweiligen Transformationsparameter Rotationswinkel,<br />

Koordinaten des Rotationszentrums und Translation in x- und y-Richtung ab. Zusätzlich<br />

wird zur weiteren Information der Metrikwert und die Anzahl der Iterationen, die der Optimierungsprozess<br />

bis zur Konvergenz benötigt, gespeichert. Diese Informationen werden in<br />

einer Textdatei in Tabellenform für jeden Datenstapel und für jede durchzuführende Registrierungsart<br />

gespeichert.<br />

Die Transformationsparameter können durch ein weiteres zur Verfügung stehendes Programm<br />

auf die einzelnen Bilder oder die gesamten Bildstapel angewandt werden. So können<br />

im Registrierungsprozess geglättete Bilddaten verarbeitet werden, die Transformationsparameter<br />

aber auf Originaldaten angewandt werden.<br />

3.5.7 Fehler- und Informationsausgabe<br />

Die Fehler- und Informationsausgabe ist in die Registrierungsanwendung eingebunden. Zur<br />

Implementierung wurde das C++ Designmuster Singleton genutzt. Ein Singleton wird dazu<br />

verwendet, sicherzustellen, dass eine Klasse nur eine Instanz hat und dass ein globaler Zugriff<br />

auf diese eine Instanz in der gesamten Registrierungsanwendung möglich ist. Die Anwendungsbeispiele<br />

für ein Singleton sind vielseitig. Ein Singleton findet immer dann Einsatz,<br />

wenn für eine Applikation einzigartige Objekte modelliert werden sollen. Die Einzigartigkeit<br />

wird durch den vom Singleton-Pattern beschriebenden Typen garantiert. Dieser instanziiert<br />

sich selbst, bietet anderen Objekten jedoch keine Möglichkeit, weitere Instanzen zu erzeugen.<br />

Dieses Konzept des Singleton ist für die Fehler- und Informationsausgabe anwendbar. Die<br />

Registrierungsapplikation benötigt nur eine Instanz, die die Ausgabe von Fehlermeldungen<br />

und Informationen steuert.<br />

Die Ausgabe der Informationsmenge kann durch den Nutzer der Registrierungsanwendung<br />

gesteuert werden. Dazu wird in der Konfigurationsdatei eine Variable je nach Ausgabemodus<br />

gesetzt. Sollen wenig Informationen ausgegeben werden, wird der Modus brief gewählt. Für<br />

eine Ausgabe von vielen Informationen wird der Modus debug gewählt. Eine mäßige Ausgabe<br />

der Informationen erzeugt der Modus verbose. Das Singleton ist so implementiert, dass<br />

in jedem Ausgabemodus die jeweils gewünschte Informationsmenge ausgegeben wird.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!