Lösen Sie mindestens 7 der folgenden Aufgaben. Abgabe: nächster Termin (21.Mai 2019).
|
|
- Kristian Stieber
- vor 5 Jahren
- Abrufe
Transkript
1 Image Tutorial 2 MBV - SS19, richard rascher-friesenhausen Dies ist der zweite Teil einer sehr, sehr kurze Einführung zu Python und den Möglichkeiten, vermittels des Moduls SimpleITK Bilder zu bearbeiten. Wir erweitern in diesem Tutorial unseren Umgang mit SimpleITK insbesondere um neue eingebaute Bildfilter und den Umgang mit dreidimensionalen Bildern. Für weitergehende Informationen zu SimpleITK schauen Sie unter Insbesondere die Beschreibung der Klassen ist für diese Tutorial von Interesse: Die Beschreibungen sind zwar für das C++-Interface der Bibliothek geschrieben. Sie lassen sich aber relativ einfach auf Python übersetzen. Lösen Sie mindestens 7 der folgenden Aufgaben. Abgabe: nächster Termin (21.Mai 2019). Wir gehen auf diesem Zettel stets davon aus, dass wir das Modul SimpleITK und auch myshow importiert haben. import SimpleITK as sitk from myshow import myshow SimpleITK Filter Das Modul SimpleITK stellt viele Bildverarbeitungsoperatoren (ImageFilter) zur Verfügung, die wir zum Teil auch schon selber implementiert haben. Bspw. die Glättungsfilter aus dem letzten Übungsblatt. Aber auch viele weitere. Beispielweise ist das Invertieren eines Grauwertbildes mit der Funktion InvertIntensity möglich. img = sitk.readimage('quadrat.png')
2 gmi = sitk.invertintensity(img) sitk.writeimage(gmi, 'tardauq.png') myshow(sitk.tile([img, gmi],[2,1])) Diese Hilfe zu InvertIntensityImageFilter beschreibt das objektorientierte Interface zu dem Algorithmus. Oben haben wir das prozedurale Interface InvertIntensity verwendet. Fast alle SimpleITK Algorithmen bieten diese beiden Schnittstellen an. Dabei ist der prozedurale Aufruf meist einfacher. Das objektorientierte Interface ist aber flexibler. Dazu später mehr. Neben der Prozedur InvertIntensity gibt es auch noch Square, Sin, AbsoluteValueDifference, RescaleIntensity. All dies Prozeduren entsprechen den Bildverarbeitungsalgorithmen, die wir auf den Übungszettel 2 für die verschiedenen Aufgaben selber programmiert haben. Aufgabe: Lösen Sie noch einmal die Aufgabe 3.4. Verwenden Sie aber diesmal die Prozedur AdaptiveHistogramEqualization von SimpleITK (mit den Standardparametern). img = sitk.readimage('woman_in_water.png') # out =??? sitk.writeimage(out, 'equal_woman_in_water.png') myshow(sitk.tile([img, out],[2,1])) Wir verarbeiten zumeist Bilder, die den Pixeltyp unsigned int 8 oder UInt8 besitzen. Für manche Berechnungen benötigt man aber Bilder, die einen Pixelwert als Float beschreiben. Und zum Speichern muss dann wieder ein UInt8 daraus gemacht werden. Für den Wechsel der Pixel-Datentypen gibt es den Bildoperator CastImageFilter oder Cast. Aufgabe: Probieren Sie dazu den folgenden Programmcode einmal aus. img = sitk.readimage('quadrat.png') print(img.getpixelidtypeasstring(), type(img[0,0])) Img = sitk.cast(img, sitk.sitkfloat32) print(img.getpixelidtypeasstring(), type(img[0,0])) Z.B. benötigen in SimpleITK die Glättungsfilter basierend auf partiellen Differentialgleichungen Eingangsbilder, deren Pixeltyp eine Float Zahl ist. Machen wir
3 gleich. Glättungsfilter Zuvor noch einmal die Glättungsfilter über Faltungsmasken. Der kleinste Mittelwertfilter besitzt die Faltungsmaske Diese kann über den Filter ConvolutionImageFilter oder Convolution auf ein Bild angewendet werden. Dazu gehört der folgende Python-Code import numpy as np img = sitk.readimage('clown.png') Img = sitk.cast(img, sitk.sitkfloat32) mean = sitk.getimagefromarray( 1/9 * np.array([[1, 1, 1], [1, 1, 1], [1, 1, 1]], np.float32)) Out = sitk.convolution(img, mean) out = sitk.cast(out, sitk.sitkuint8) sitk.writeimage(out, 'mean-clown.png') myshow(sitk.tile([img, out], [2, 1])) Aufgabe: Spielen Sie den obigen Programmcode durch und überprüfen Sie das Ergebnis mit dem MeanImageFilter bzw. Mean. # Ihr Code hierhinein Wir haben nun die Möglichkeit, eigene Filter über die Filtermaske zu definieren und auszuprobieren. Z.B. mit der "schiefe" Binomialmaske
4 Aufgabe: Was liefert der obige "schiefe" Binomialfilter für den Clown. Was passiert, wenn man ihn mehrfach (10 mal) anwendet. Vergeichen Sie mit dem normalen Binomailfilter. img = sitk.readimage('clown.png') Img = sitk.cast(img, sitk.sitkfloat32) # mask = Out = sitk.convolution(img, mask) out = sitk.cast(out, sitk.sitkuint8) sitk.writeimage(out, 'skew-clown.png') myshow(sitk.tile([img, out], [2, 1])) # Und jetzt mehrfach... Wir haben mit dem Mittelwertfilter und dem Binomialfilter eine Reihe von Glättungsfiltern kennengelernt. Sie haben den Nachteil, dass sie Kanten verschwimmen lassen. Es gibt Glättungsfilter, die versuchen, nur bis zu eine Kante zu glätten und damit die Kante zu erhalten. Der Kuwahara-Filter ist so ein Operator. Seine Ergebnisbilder wirken jedoch "blockig". import numpy as np def sitkkuwahara(img): arr_mask = 1/6 * np.array([[1, 1, 1, 0, 0], [1, 1, 1, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]], np.float32) arr_masks = [arr_mask] for i in range(1, 4): arr_masks.append(np.rot90(arr_masks[i-1])) masks = [] for i in range(4): masks.append(sitk.getimagefromarray(arr_masks[i]))
5 oimg = sitk.cast(img, sitk.sitkfloat32) simg = sitk.square(oimg) oimgs = [] simgs = [] for i in range(4): oimgs.append(sitk.convolution(oimg, masks[i])) simgs.append(sitk.convolution(simg, masks[i])) oimg = sitk.compose(oimgs) simg = sitk.compose(simgs) vimg = sitk.subtract(simg, sitk.square(oimg)) arr_vimg = sitk.getarrayfromimage(vimg) indices = np.argmin(arr_vimg, 2) Out = sitk.image(oimg) for x in range(out.getwidth()): for y in range(out.getheight()): Out[x, y] = oimg[x, y][indices[y, x]] out = sitk.cast(out, sitk.sitkuint8) return out Aufgabe: Wenden Sie den obigen Kuwahara-Filter auf das Clown-Bild einmal und 10 mal an. Die sogenannten Diffusionsfilter sind ebenfalls kanten-erhaltende Glättungsfilter, bei denen aber keine Blockbildung au ritt. Aufgabe: Verwenden Sie CurvatureAnisotropicDiffusionImageFilter, um das Clown Bilder zu glätten. Halten Sie sich bei der Programmierung an die kommende Struktur. Darin werden für die notwendigen Parameter folgende Standardwerte gesetzt: numberofiterations: 5 timestep: conductanceparameter: 3.0 img = sitk.readimage('clown.png') # Cast image to float type. Necessary for diffusion. Img = sitk.cast(img, sitk.sitkfloat32)
6 # Call image filter. Out = sitk.curvatureanisotropicdiffusion(img, conductanceparameter=3.0, # Show image and result. myshow(img, 'original') myshow(out, 'smoothed') numberofiterations=5, timestep=0.125) # Cast result to uint type. Necessary for png. out = sitk.cast(out, sitk.sitkuint8) # Save result. sitk.writeimage(out, 'smooth-clown.png') Aufgabe: Verwenden Sie auch die Bilder clown.png, moon.png und brain.png. Spielen Sie bei einem der Bilder ein wenig mit den obigen Parametern. (Vorsicht: eine zu hohe Iterationszahl führt zu sehr langen Rechenzeiten.) Vergleichen Sie die Ergebnisse. Ersetzen Sie den obigen Diffusionsfilter durch GradientAnisotropicDiffusion. Welcher ist "besser"? Mehr Informationen zu den Filtern finden Sie in der Dokumentation zu ITK, dem ITKSo wareguide. Diesen finden Sie unter wareguide.pdf. Aufgabe: Wie könnte man ein buntes Bild glätten? Spielen Sie Ihre Idee einmal durch auf einem Bild Ihrer Wahl. 3D Bilder im SimpleITK Wir verwenden das Modul SimpleITK insbesondere deshalb, weil wir damit auch dreidimensionale Bilder erzeugen, lesen, bearbeiten und schreiben können. Dazu gehören die folgenden Befehle, die wir zum Teil von 2D Bildern schon kennen.
7 Erzeugen eines sitk.image Objektes aus einer Bilddatei: img = sitk.readimage(dateiname) dateiname: Name einer existierenden Bilddatei, String. Speichern eines Bildobjekts: sitk.writeimage(img, dateiname) dateiname: Name der neuen Bilddatei, String Erzeugen eines sitk.image-objektes mit gegebener Dimension: img = sitk.image(breite, hoehe, tiefe, sitk.sitkuint8) breite: Anzahl der Spalten des Bildes, Integer größer Null hoehe: Anzahl der Zeilen des Bildes, Integer größer Null tiefe: Anzahl der Schichten des Bildes, Integer größer Null Auslesen der Tiefe eines Bildobjektes: breite = img.getdepth() Auslesen eines Voxels eines Bildobjektes: g = img[x,y,z] x: Spaltenindex des Voxels, Integer y: Zeilenindex des Voxels, Integer z: Schichtindex des Voxels, Integer g: Grauwert des Voxels, Integer Setzen eines Voxels eines Bildobjektes: img[x,y,z] = g x: Spaltenindex des Voxels, Integer y: Zeilenindex des Voxels, Integer z: Schichtindex des Voxels, Integer g: Grauwert des Voxels, Integer Aufgabe: Erzeugen Sie ein (leeres) Bild mit den Dimensionen 128, 64, 32. Prüfen Sie nach, ob das Bild tatsächlich diese Dimensionen besitzt. (GetHeight(), GetWidth(), GetDepth(), GetDimension(), GetSize()). Aufgabe: Erzeugen Sie ein dreidimensionales Bild der Größe 128^3 mit einem Quader der Seitenlänge 30 in der Mitte. Speichern Sie das Bild unter dem Namen quader.tiff ab. Das TIFF-Format kann mit 3D-Bildern umgehen. Schauen Sie sich Ihr Ergebnis in ImageJ an. Probieren Sie auch einmal das ImageJ Plugin 3D->3D Viewer aus.
8 myshow(img[:, :, 64]) Aufgabe: Erzeugen Sie ein dreidimensionales Bild der Größe 128^3 mit einer Kugel mit Radius 30 in der Mitte. Speichern Sie das Bild unter dem Namen kugel.tiff ab. myshow(img[:, :, 64]) In dem MeVisLab-Verzeichnis auf den Rechnern im MT-Rechnerraum findet man unter dem Verzeichnis Packages/MeVisLab/Resources/DemoData verschiedene medizinische Bilddateien. In dem dortigen Unterverzeichnis ProbandT1Formats sind unterschiedliche Bildformate eines T1-MR Bildes abgelegt. Aufgabe: Finden Sie auf Ihrem Rechner das angesprochene MeVisLab-Verzeichnis und schauen Sie sich die darin enthaltene Datei ProbandT1.small.itk.uint16.tiff in ImageJ an. Verwenden Sie auch wieder das 3D Viewer Plugin. Auf 3D-Bilder können auch alle SimpleITK Bildoperatoren angewendet werden. Aufgabe: Laden Sie die Datei ProbandT1.small.itk.uint16.tiff mit SimpleITK als Bild Img ein. Bekommen Sie den maximalen und minimalen Grauwert heraus. Invertieren Sie das Bild Img. Wenden Sie einen Threshold-Operator auf I über J = sitk.threshold(img, 800, 2000) an und schauen Sie sich das Ergebnis wieder in ImageJ an. Was ist übrig geblieben? I = sitk.readimage('probandt1.small.itk.uint16.tiff') # Min = # Max = # gmi = invertiert... # J = Schwellenwert...
9 Die Grauwerte in dem Bild sind 12Bit kodiert und bewegen sich in einem Intervall, dass deutlich mehr als 255 Grauwerte umfasst.
Eine sehr kurze Einführung in Python und SimpleITK Teil 1 richard rascher-friesenhausen
Hochschule Bremerhaven Medizinische Bildverarbeitung SS 18 MT-B 6 Eine sehr kurze Einführung in Python und SimpleITK Teil 1 richard rascher-friesenhausen richard.rascher-friesenhausen@hs-bremerhaven.de
MehrEine sehr kurze Einführung in (I)Python und SimpleITK Teil 1 richard rascher-friesenhausen richard.rascher-friesenhausen@hs-bremerhaven.
Hochschule Bremerhaven Medizinische Bildverarbeitung SS 13 MT-M 2 Eine sehr kurze Einführung in (I)Python und SimpleITK Teil 1 richard rascher-friesenhausen richard.rascher-friesenhausen@hs-bremerhaven.de
MehrEinführung in die VIGRAPLT Bibliothek
Einführung in die VIGRAPLT Bibliothek Version 0.5.0 Benjamin Seppke AB KOGS Dept. Informatik Universität Hamburg Inhalt Konzepte Grundlegende Funktionen Beispiele Basis für eigene Algorithmen Inhalt Konzepte
MehrEinführung in die Praktische Informatik. Übungsblatt 10. Dr. U. Köthe Heidelberg, 11. Januar 2017
Einführung in die Praktische Informatik Dr. U. Köthe Heidelberg, 11. Januar 2017 Übungsblatt 10 Aufgabe 10.1 Arithmetik für die Punktklasse [12 Punkte] In der Vorlesung haben wir behandelt, wie man arithmetische
MehrEine sehr kurze Einführung in Python und MyImage richard rascher-friesenhausen
Eine sehr kurze Einführung in Python und MyImage richard rascher-friesenhausen richard.rascher-friesenhausen@mevis.fraunhofer.de Dies ist eine sehr, sehr kurze Einführung zu Python und den Möglichkeiten,
MehrÜbungsblatt 1. Java Vorkurs (WS 2017)
Übungsblatt 1 Java Vorkurs (WS 2017) Aufgabe 1 Hallo-Welt Erstelle ein neues Projekt mit dem Namen HelloJava. Erzeuge in diesem Projekt eine neue Klasse HelloJava. (a) Schreibe die main-methode in die
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 2. Teil 18. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrInformatik I: Einführung in die Programmierung. Übungsblatt 3. Abgabe: Freitag, 15. November 2013, 18:00 Uhr
Informatik I: Einführung in die Programmierung Prof. Dr. Bernhard Nebel Dr. Christian Becker-Asano, Dr. Stefan Wölfl Wintersemester 2013/2014 Universität Freiburg Institut für Informatik Übungsblatt 3
MehrMinimaleinführung in Python 3
Minimaleinführung in Python 3 Python ist eine einfach zu lernende, aber mächtige Programmiersprache mit effizienten abstrakten Datenstrukturen und einem einfachen, aber effektiven Ansatz zur objektorientierten
MehrEinführung in Python Teil II Bibliotheken für wissenschaftliches Rechnen
Einführung in Python Teil II Bibliotheken für wissenschaftliches Rechnen Valentin Flunkert Institut für Theoretische Physik Technische Universität Berlin Fr. 28.5.2010 Nichtlineare Dynamik und Kontrolle
Mehr1 Berechnung von Summen (ca = 10 Punkte)
Einführung in die wissenschaftliche Programmierung Klausur 26.02.2013 Seite 1/8 Name, Vorname, Unterschrift: Matrikelnummer: 1 Berechnung von Summen (ca. 5 + 4 + 1 = 10 Punkte) Gegeben sind natürliche
MehrÜbungen zur Vorlesung Wissenschaftliches Rechnen I
Übungen zur Vorlesung Wissenschaftliches Rechnen I Nicolas Gauger, René Lamour, Hella Rabus Wintersemester 2007/2008 Programmierung - Einführung Programmierung - Einführung Berechnung einer Formel y =
MehrPython Einführung. Monica Selva Soto. 24 März Mathematisches Institut
Mathematisches Institut mselva@math.uni-koeln.de 24 März 2009 Übungen zur Numerik 1 Vorlesung Übungen praktische Aufgaben Webseite: (Anmeldung, Übungsblätter) http://www.mi.uni-koeln.de/~mselva/numerik1.php
MehrEinleitung Typsystem Typisierung Zusammenfassung Literatur. Typisierung. Effiziente Programmierung. Thomas Schnieders
Typisierung Effiziente Programmierung Thomas Schnieders Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg 2018-04-26 Thomas Schnieders Typisierung 1
MehrProgrammierung 1 Studiengang MI / WI
Programmierung 1 Studiengang MI / WI Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de http://mwilhelm.hs-harz.de Raum 2.202 Tel. 03943 /
MehrProgrammierung für Mathematik HS10
Department of Informatics software evolution & architecture lab Programmierung für Mathematik HS10 Übung 5 1 Aufgabe: Eclipse IDE 11 Lernziele 1 Die Entwicklungsumgebung Eclipse kennen lernen 12 Aufgabenstellung
Mehr1 Stückweise konstante Funktionen (ca =10 Punkte)
Einführung in die wissenschaftliche Programmierung Klausur Seite 1/5 Name, Vorname, Unterschrift: Matrikelnummer: 1 Stückweise konstante Funktionen (ca. 4+2+4=10 Punkte) In dieser Aufgabe soll eine Klasse
MehrMatLab Teil 2: weitere Operationen, Dateien und Bildformate
MatLab Teil 2: weitere Operationen, Dateien und Bildformate Dr. Martin Gollbach 1 Weitere Operationen 2 Vergleichsoperationen Gleichheit Symbol: == Bsp.: if I == J end A(I,J) = 1; Ungleichheit Symbol:
Mehr1 Wiederholung: Definition von Arrays
#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Mon Nov 6 13:31:07 2017 @author: christianehelzel """ # 5. Vorlesung Created on Mon Nov 6 13:31:07 2017 @author: christianehelzel 1 Wiederholung:
MehrWS2018/ Oktober 2018
Einführung in die Programmierung Ronja Düffel WS2018/19 05. Oktober 2018 Rückblick Datentypen bool Zahlen (int und float) string Variablen Kontrollstrukturen Verzweigungen (if...: und if...else:) Schleifen
MehrInstitut für Programmierung und Reaktive Systeme 19. August Programmier-Labor. 1. Übungsblatt
echnische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 19. August 2014 Aufgabe 1: Programmier-Labor 1. Übungsblatt a) Welche primitiven Datentypen kennt
MehrPython 2. Vorlesung Computerlinguistische Techniken Alexander Koller. 28. Oktober 2014
Python 2! Vorlesung Computerlinguistische Techniken Alexander Koller! 28. Oktober 2014 Listen Sequenz von beliebigen Werten. Literale: [], [1,2,3], [ hallo, True, -5.0] Hinten an Liste anhängen: L.append(27)
MehrPYTHON. 04 Funktionen II, Module
PYTHON 04 Funktionen II, Module Funktionen Funktionen enthalten Programm-Teile können später im Programm aufgerufen werden können beliebig oft aufgerufen werden (und man muss nur die Funktion aufrufen,
MehrIntroduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016
to to May 2016 to What is Programming? All computers are stupid. All computers are deterministic. You have to tell the computer what to do. You can tell the computer in any (programming) language) you
MehrInstitut für Informatik und Angewandte Kognitionswissenschaften
Grundlegende Programmiertechniken (»Programmierung«), WS 2007/2008 Übungsblatt 5 Präsenzaufgaben: 11, 12, 13 Hausaufgabe: 14 Aufgabe 11 STRING- UND OBJEKT-VERGLEICH String s1 = new String("Test String");
Mehrhue05 November 25, 2016
hue05 November 25, 2016 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern
MehrEinführung in die Computerlinguistik
Einführung in die Computerlinguistik Übung 2 Laura Kallmeyer Sommersemester 204, Heinrich-Heine-Universität Düsseldorf Offizielle Python Seite, auf der man jede Menge Dokumentation findet: http://www.python.org/
MehrVorbereitende Aufgaben
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2015/16 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand, Marcel Preuß, Iman Kamehkhosh, Marc Bury, Diana Howey Übungsblatt
MehrThemen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen
Themen der Übung 1 Organisatorisches Methoden und Wrapperklassen 2 Methoden 3 Wrapper-Klassen CoMa-Übung IV TU Berlin 07.11.2012 Organisatorisches: Im Pool nur auf die Abgabeliste setzen, wenn ihr wirklich
MehrAufgabenblatt 4 IT-Security Angewandte Informatik WS 2016/17
Aufgabenblatt 4 IT-Security Angewandte Informatik WS 2016/17 Lernziele 6 Punkte Bibliothek BigInt (Schnelle) Algorithmen für Multiplikation und Division Erweiterter Euklid'scher Algorithmus Für dieses
Mehr1 Eine Einführung in die objektorientierte Programmierung
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # """ # Created on Fri Jan 12 09:34:34 2018 # # @author: christianehelzel # """ import matplotlib.pyplot as plt 1 Eine Einführung in die objektorientierte
MehrHauptklausur zur Vorlesung Bildverarbeitung WS 2002/2003
Name:........................................ Vorname:..................................... Matrikelnummer:.............................. Bitte Studiengang ankreuzen: Computervisualistik Informatik Hauptklausur
MehrAccess 2010 Programmierung Import und Export nach Excel
Access 2010 Programmierung Import und Export nach Excel Excel... ist das Tabellenkalkulationsprogramm von Microsoft Office. wird genutzt, um numerische Daten in Tabellenform zu erfassen. kann Daten automatisch
MehrGreenfoot: Verzweigungen
Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch Betrachten wir die act()-methode des Wombats aus dem Wombats-Szenario: Wie interpretieren Sie diesen Code? (einfach übersetzen) Falls der Wombat ein
MehrDatenstrukturen und Algorithmen (SS 2013)
Datenstrukturen und Algorithmen (SS 2013) Übungsblatt 10 Abgabe: Montag, 08.07.2013, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes
MehrKLAUSUR ZUM BACHELORMODUL PROBEKLAUSUR COMPUTERLINGUISTISCHE ANWENDUNGEN PROBEKLAUSUR, DR. BENJAMIN ROTH KLAUSUR AM
KLAUSUR ZUM BACHELORMODUL PROBEKLAUSUR COMPUTERLINGUISTISCHE ANWENDUNGEN PROBEKLAUSUR, DR. BENJAMIN ROTH KLAUSUR AM VOR NACH MATRIKELNUMMER: STUDIENGANG: B.Sc. Computerlinguistik, B.Sc. Informatik, Magister
Mehr4. Aufgabe: Medizinische Bilder
4. Aufgabe: Medizinische Bilder 1 Einleitung In der modernen Medizin gibt es zahlreiche bildgebende Verfahren, die eine zuverlässige Diagnose unterstützen. Eine große Rolle spielen dabei das klassische
MehrKlausur Grundlagen der Programmierung
Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel
MehrVorwort Einführung in Power Query Erste Abfrage erstellen... 21
Vorwort... 11 1 Einführung in Power Query... 13 1.1 Power Query installieren und aktivieren... 13 1.2 Power Query aktivieren bzw. deaktivieren... 14 Was tun, wenn das Register nicht angezeigt wird... 16
MehrObjekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3
Programmieren mit Java Modul 5 Objekte Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Klassen und Objekte 3 2.1 Klassen.................................... 4 2.2 Objektvariablen und Methoden.......................
MehrObjektorientierte Programmierung mit C++ (WS 2010)
Objektorientierte Programmierung mit C++ (WS 2010) Dr. Andreas F. Borchert, Tobias Brosch Institut für Angewandte Informationsverarbeitung Universität Ulm Blatt 11: Abgabetermin 19. Januar 2011 11 Uhr
MehrDiskrete Modellierung
Diskrete Modellierung Wintersemester 2018/19 Martin Mundhenk Uni Jena, Institut für Informatik 22. Oktober 2018 Vorlesung Diskrete Modellierung Grundlagen der Programmierung mit Python (Teil 2) (Winter
MehrBildverarbeitung mit ImageJ
U berblick Bildverarbeitung mit Dr. Birgit Mo ller Institut fu r Informatik Martin-Luther-Universita t Halle-Wittenberg Einfu hrung in die Bildverarbeitung, SS 2008 1 U berblick U berblick 1 Die Entwicklungsumgebung
MehrVariablen, Konstanten und Datentypen
Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Variablen, Konstanten und Datentypen Überblick
MehrUnterprogramme. AnPr. Wiederholungen im Code werden vermieden. Programme werden leichter lesbar. Die Entwicklung und der Test werden vereinfacht.
Name Klasse Datum 1 Allgemeines Programme werden üblicherweise nicht als ein einziger, fortlaufender Programmcode verfasst, sondern mit geeigneten Mitteln unterteilt und somit strukturiert. Die Methodik
MehrGreenfoot: Verzweigungen Nicolas Ruh und Dieter Koch
Greenfoot: Verzweigungen Nicolas Ruh und Dieter Koch Betrachten wir die act()-methode des Wombats aus dem Wombats-Szenario: Wie interpretieren Sie diesen Code? (einfach übersetzen) Falls der Wombat ein
MehrLehrstuhl für Angewandte Informatik I SS 2003 Prof. Dr. Andreas Henrich 23. September Konzepte der Programmierung. Klausur
Lehrstuhl für Angewandte Informatik I SS 2003 Prof. Dr. Andreas Henrich 23. September 2003 Konzepte der Programmierung Klausur Bearbeitungszeit: Hilfsmittel: Hinweise: 90 Minuten Taschenrechner (nicht
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 25. November 2015 Zweidimensionale Arrays [ ][ ] Ein zweidimensionaler
Mehr6 Ein- und Ausgabe. Bisher war unsere (Bildschirm-) Ausgabe leichtflüchtig (
6 Ein- und Ausgabe Bisher war unsere (Bildschirm-) Ausgabe leichtflüchtig ( Drucken war hoffnungslos übertrieben); heute lernen wir, wie wir die Ergebnisse unserer Programme abspeichern können, um sie
Mehr3 Properties, Bindings und JavaFX-Collections
Properties, Bindings und JavaFX Collections 31 3 Properties, Bindings und JavaFX-Collections Dieses Kapitel beschäftigt sich mit wichtigem Basiswissen für das Verständnis der JavaFX Elemente. Nachdem wieder
Mehr1 Autorennen ( = 11 Punkte)
Einführung in die wissenschaftliche Programmierung Klausur 11.02.2016 Seite 1/8 Name, Vorname, Unterschrift: Matrikelnummer: 1 Autorennen (3 + 3.5 + 4.5 = 11 Punkte) Eine Physikerin beobachtet die Geschwindigkeit
Mehrhue12 January 24, 2017
hue12 January 24, 2017 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern
MehrAnwendung von Geoinformatik: Entwicklung von Open Source Tools für die automatisierte Analyse von Geoinformationen
Anwendung von Geoinformatik: Entwicklung von Open Source Tools für die automatisierte Analyse von Geoinformationen Abschlussprojekt: Klassifizierung von High Definition Panoramabildern Bearbeitung: Johannes
MehrGültigkeitsbereich. T. Neckel Einführung in die wissenschaftliche Programmierung IN8008 Wintersemester 2016/
Gültigkeitsbereich Funktionen Erinnerung: Python ist eine interpretierte Sprache! Funktionen müssen definiert sein, bevor sie aufgerufen werden können. T. Neckel Einführung in die wissenschaftliche Programmierung
MehrC-Programmierkurs Mathematik
Mathematik WS 2018/2019 Dr. Bodo Kalthoff Speicher für Werte Variablen Über Variablennamen ansprechbar Sprechende Namen vergeben! Variablen können Zahlen, Buchstaben oder komplexere Werte enthalten Der
MehrFilter Transformationen (Blender) INSTITUTE OF COMPUTER GRAPHICS AND ALGORITHMS
Filter Transformationen (Blender) INSTITUTE OF COMPUTER GRAPHICS AND ALGORITHMS Wozu Filter? Wozu Filter? Beispiel 3 Teil1: Filter anwenden (verschiedene Filter anwenden um diverse Effekte zu erzeugen)
MehrGrundlagen der Informatik
Grundlagen der Informatik Musterklausur 1. Dynamische Datenstrukturen und objektorientierte Programmierung Zur Verwaltung einer digitalen Fotogalerie sollen Techniken der objektorientierten Programmierung
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrMussten wir eine ganze Reihe solcher Zahlen speichern, haben wir das eindimensionale Array verwendet.
C Zweidimensionale Arrays Fachspezifische Softwaretechnik 1 Scriptum 2017 HTL St.Pölten Elektronik und Technische Informatik EL Autor: Kuran Zweidimensionale Arrays: Bisher konnten wir in Variablen einfache
MehrGirls Day 2017 Programmierung
Girls Day 2017 Programmierung Anke Brocker Quality Management Würselen, 27. April 2017 www.lancom-systems.de Programmierung 27.04.2017 - Übersicht Programmieren mit der Arduino IDE Die Arduino IDE Der
MehrAnregungen zu Übung 2
Anregungen zu Übung 2 Allgemeine Informatik II - SS 2007 Was sind Arrays und wie kann man sie verwenden? Ein Array ist ein spezieller Datentyp, der mehrere Werte zu einer Einheit zusammenfasst. Er ist
Mehr1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH
1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch
MehrBeschreibung des universellen Gitternetz-Formats unigrid Datentypen und Routinen Entwicklungsstand
Beschreibung des universellen Gitternetz-Formats unigrid Datentypen und Routinen Entwicklungsstand Bundesanstalt für Wasserbau Abteilung Küste WWW-Server: http://www.hamburg.baw.de/ Dezember 1999 /1 Seite
MehrHandbuch für die Erweiterbarkeit
Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6
MehrPython. Grundlagen, fortgeschrittene Programmierung und Praxis
Python Grundlagen, fortgeschrittene Programmierung und Praxis August 2011 I. Grundlagen 1 1. Einleitung 3 2. Verfügbarkeit und Installation 6 2.1. Windows..................................... 6 2.2. Unix/Linux/MacOSX...............................
MehrInstitut für Informatik
Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2009 Praktikum: Grundlagen der Programmierung Aufgabenblatt 1 Prof. R. Westermann, R. Fraedrich,
MehrPraktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14
Praktikum zu Einführung in die Informatik für LogWings und WiMas Wintersemester 2013/14 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Iman Kamehkhosh, Marcel Preuÿ, Henning Timm Übungsblatt 2
Mehrpue13 January 28, 2017
pue13 January 28, 2017 1 Aufgabe 1 (Klammern und Anweisungsblöcke) Wie Sie in der Vorlesung gelernt haben, werden Anweisungsblöcke in Java nicht durch Einrückung, sondern mithilfe von geschweiften Klammern
MehrEinführung in die Programmierung 1
Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener
MehrEinleitung Erste Abfrage erstellen...2
Einleitung...7 1 Einführung in Power Query... 11 1.1 Power Query installieren und aktivieren... 11 1.2 Power Query aktivieren bzw. deaktivieren... 12 Was tun, wenn das Register nicht angezeigt wird...
MehrMedientechnik. Übung 5 Java Bildbearbeitung - Teil 2
Medientechnik Übung 5 Java Bildbearbeitung - Teil 2 Planung Nr Zeitraum Thema 1 20.04. 25.04. Bildretusche mit Gimp 2 27.04. 01.05. GUI Programmierung 3 04.05. 08.05. Model-View Controller 4 18.05. 22.05.
MehrWaermeleitungsgleichung
Waermeleitungsgleichung October 26, 2018 1 Ausführliche Diskussion des Wärmeleitungsgleichungs-Beispiels der Vorlesung Wir betrachten die folgende Aufgabe: Ein Stab der Länge π (auf dem Zahlenstrahl von
Mehrhue13 January 30, 2017
hue13 January 30, 2017 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern
MehrAufgabenblatt 4. Kompetenzstufe 1. Allgemeine Informationen zum Aufgabenblatt:
Aufgabenblatt 4 Kompetenzstufe 1 Allgemeine Informationen zum Aufgabenblatt: Die Abgabe erfolgt in TUWEL. Bitte laden Sie Ihr IntelliJ-Projekt bis spätestens Freitag, 08.12.2017 13:00 Uhr in TUWEL hoch.
MehrKap 9. Bitoperationen und -strukturen
Kap 9. Bitoperationen und -strukturen 9.1 Anwendung von Bits Im Gegensatz zu den üblicherweise Byte-orientierten Daten gibt es auch Bit-Anwendungsbeispiele Statusanzeigen bei Ein-/Ausgabe (Stream-Klassen)
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 10:30-12:00 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Aber in den Übungen! Linux, OS X http://hhu-fscs.de/linux-install-party/
MehrLabor Software-Entwicklung 1
Fakultät für Technik STUDIENGANG MEDIZINTECHNIK Labor Software-Entwicklung Vorbereitungsaufgaben zu Versuch 2 C-Programmierung Mathematische Berechnungen Wintersemester 205/206 Seite von 5 Vorbemerkungen
MehrC# - Einführung in die Programmiersprache Methoden. Leibniz Universität IT Services
C# - Einführung in die Programmiersprache Methoden Leibniz Universität IT Services 02.07.12 Methoden... sind Subroutinen in einer Klasse. können einen Wert an den Aufrufer zurückgeben. verändern die Eigenschaften
MehrEinführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrDigitale Bildverarbeitung - Rechnerübung 3
Digitale Bildverarbeitung - Rechnerübung 3 1. Khoros Zur Durchführung der Rechnerübung wird das Programmpaket KHOROS mit seiner Benutzerschnittstelle Cantata verwendet. Nach der Anmeldung am Rechner durch
MehrDiskrete Modellierung
Diskrete Modellierung Wintersemester 2017/18 Martin Mundhenk Uni Jena, Institut für Informatik 16. Oktober 2017 Vorlesung Diskrete Modellierung Grundlagen der Programmierung mit Python (Teil 2) (Winter
MehrInstitut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
Mehr10. OLAPLINE-Anwendertreffen
10. OLAPLINE-Anwendertreffen 26. und 27. April 2017 Schloss Garath Düsseldorf Zwei Tage Weiterbildung und Networking integriert: Vorträge, Workshops und Erfahrungsaustausch rund um TM1 JAVA EXTENSIONS
MehrMedientechnik. Übung Java-Bildbearbeitung
Medientechnik Übung Java-Bildbearbeitung Java2D - Bildbearbeitung Bilder laden Bildfilter Fertige Filter in Java2D Eigenen Filter implementieren Fertige Filter von Drittanbietern Bilder laden Einlesen
MehrStrings. Daten aus Dateien einlesen und in Dateien speichern.
Strings. Daten aus Dateien einlesen und in Dateien speichern. Strings Ein String ist eine Zeichenkette, welche von MATLAB nicht als Programmcode interpretiert wird. Der Ausdruck 'a' ist ein String bestehend
Mehrhue04 November 18, 2016
hue04 November 18, 2016 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 09:00-10:30 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Linux, OS X Freitag: http://hhu-fscs.de/linux-install-party/
MehrSequenzen - Listen. Sequenzen Listen: Definition Listen: veränderliche Sequenzen Methoden Attribute Eine Liste von ganzen Zahlen
Sequenzen - Listen Sequenzen Listen: Definition Listen: veränderliche Sequenzen Methoden Attribute Eine Liste von ganzen Zahlen Sequenzen Definition Eine Sequenz ist eine Datenstruktur, in der mehrere
MehrDie Anwesenheitspflicht beim Seminar gilt für diejenigen Teilnehmer, die einen Schein erwerben wollen. Für die Nachmittagsübungen gilt keine
1 2 Die Anwesenheitspflicht beim Seminar gilt für diejenigen Teilnehmer, die einen Schein erwerben wollen. Für die Nachmittagsübungen gilt keine Anwesenheitspflicht; d.h. die Teilnehmer dürfen sie gerne
MehrEinführung: Verteilte Systeme - Remote Method Invocation -
Einführung: Verteilte Systeme - - Prof. Dr. Michael Cebulla 11. Dezember 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 43 M. Cebulla Verteilte Systeme Gliederung 1 2 Architektur RMI Kommunikation
Mehrhue06 December 2, 2016
hue06 December 2, 2016 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern
MehrInformationsverarbeitung im Bauwesen
12 im Bauwesen Markus Uhlmann 1 Zusammenfassung der 11. Vorlesung Objektorientierte Programmierung (OOP) Wozu eigentlich? Was unterscheidet OOP von traditionellen Techniken? Verwendung von vordefinierten
MehrPraktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben
Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18 Fakultät für Informatik Lehrstuhl 14 Lars Hildebrand Übungsblatt 7 Besprechung: 4. 8.12.2017 (KW 49) Vorbereitende
MehrACCESS. Formulare per VBA referenzieren FORMULARE MIT VBA PROGRAMMIEREN FORMULARE PER VBA REFERENZIEREN BASICS
Formulare per VBA referenzieren Wenn Sie Formulare und Steuerelemente programmieren wollen, müssen Sie wissen, wie Sie diese referenzieren. Nicht immer geschieht dies vom Klassenmodul des Formulars selbst
MehrInstitut für Programmierung und Reaktive Systeme 7. Mai Programmieren II. 11. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 7. Mai 2018 Programmieren II 11. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern
MehrEinführung in die Programmierung
Einführung in die Programmierung by André Karge Übung - Operatoren, Methoden, Primitives 25. Oktober 2018 Einführung in die Programmierung WS18/19 André Karge 1/29 Notizen Standard Linux Befehle: http://images.linoxide.com/linux-cheat-sheet.pdf
Mehr