Erstellung eigener Blöcke für EyesWeb

Aus toolbox_interaktion
Wechseln zu: Navigation, Suche


Dieser Artikel beschäftigt sich mit den Voraussetzung und zu treffenden Softwareeinstellungen für das Programmieren eigener Blöcke in EyesWeb unter Verwendung von Funktionen aus der Bibliothek OpenCV.

Softwarevoraussetzungen

  • EyesWeb ab 3.x
  • Microsoft Visual C++ 6.0 (keine andere Version!)
  • OpenCV

Einrichten von MS Visual C++ 6.0

  1. Kopieren von '<EyesWeb-Verzeichnis>\Dev\Sdk\Bin\EyesWebWz.awx' nach '<MS-Visual-Studio-Verzeichnis>\Common\MsDev98\Bin\IDE'
  2. Kopieren von '<EyesWeb-Verzeichnis>\Dev\Sdk\Bin\EywBlkCreator.dll' nach '<MS-Visual-Studio-Verzeichnis>\Common\MsDev98\AddIns'
  3. EyesWeb Block Creator einbinden:
    Extras → Anpassen → Add-Ins und Makrodateien → [Durchsuchen]
    Als Dateityp 'Add-Ins (.dll)' selektieren und anschließend eben kopierte Datei '<MS-Visual-Studio-Verzeichnis>\Common\MsDev98\AddIns\EywBlkCreator.dll' öffnen.
  4. Einbinden von Include-Dateien und Bibliotheken:
    Extras → Optionen → Verzeichnisse
    Verzeichnisse anzeigen für [Include-Dateien]
    [Neu] → [...] → '<EyesWeb-Verzeichnis>\Dev\Sdk\Include'
    [Neu] → [...] → '<OpenCV-Verzeichnis>\cv\include'
    [Neu] → [...] → '<OpenCV-Verzeichnis>\cxcore\include'
    Verzeichnisse anzeigen für [Bibliothekdateien]
    [Neu] → [...] → '<EyesWeb-Verzeichnis>\Dev\Sdk\Library'
    [Neu] → [...] → '<OpenCV-Verzeichnis>\lib'
  5. Menupunkte zum (De-)Registrieren des EyesWeb-Blocks:
    Extras → Anpassen → Extras → [Neu]
    1. 'Steuerelement re&gistrieren'
      Befehl: 'C:\WINDOWS\system32\regsvr32.exe'
      Argumente: '/v "$(TargetPath)"'
      Ausgangsverzeichnis: '$(TargetDir)'
    2. 'Steuerelement &deregistrieren'
      Befehl: 'C:\WINDOWS\system32\regsvr32.exe'
      Argumente: '/u "$(TargetPath)"'
      Ausgangsverzeichnis: '$(TargetDir)'

Schnelleinstieg Blockerstellung

  1. Datei → Neu → Projekte → Eyesweb Module Library AppWizard
  2. EyesWeb Block Creator aufrufen (vorhin eingefügtes Symbol) und Dialog durchlaufen:
    1. Dialog: Blocknamen vergeben
    2. Dialog: egal
    3. Dialog: OpenCV-Include-Datei(en) einbinden (z.B. 'cv.h')
    4. Dialog: Block-Typ (in der Regel passiv: Block wird jedesmal aktiviert, wenn Input stattfindet)
    5. Dialog: Paramter des Blocks definieren
      Hinweis: Beim Hinzufügen von Inputs/Outputs/Parametern als Interface immer 'IDT<Datentyp>' wählen
    6. Dialog: Eingänge des Blocks defnieren
    7. Dialog: Ausgänge des Blocks definieren
      Möchte man ein eingehendes Bild zu einem ausgehendem durchschleifen, kann hier beim entsprechenden Output der Parameter In-place Index auf die Position des Eingangsbildes im Inputarray gesetzt werden (bei einem Eingangsbild 0).
    8. Dialog: egal
  3. Bibliotheken verlinken:
    Projekt → Einstellungen → Linker
    Objekt-/Bibliothek-Module: 'EyesWebSDKd.lib cv.lib cvaux.lib cvcam.lib cvhaartraining.lib cxcore.lib cxts.lib highgui.lib trs.lib'
  4. Eigenen Code einbinden. Die Funktion 'Execute()' bildet hierbei die zentrale Methode, da sie bei jedem "Anstoßen" des Blocks aufgerufen wird.
  5. .dll-Datei erstellen:
    Erstellen → <Blockname>.dll erstellen
  6. .dll als Steuerelement registrieren (bei diesem Vorgang muss EyesWeb geschlossen sein):
    Extras → Steuerelement registrieren
  7. In EyesWeb ist ein neuer Ordner mit dem Namen des Blocks verfügbar. Darin befindet sich der erstellte Block.


Themenbezogene Dokumente in EyesWeb

Folgende englische Dokumente werden standardmäßig von EyesWeb bereitgestellt und sollten im Zusammenhang mit der Erstellung eigener Funktionblöcke eingehend studiert werden:

EyesWeb Programmer's Guide.pdf

Kapitel 1 beschreibt die Grundkonzepte des Programmablaufs. Im zweiten Kapitel wird die Installation des SDK und des Wizards und die Konfiguration von Visual C++ beschrieben. Kapitel 3 stellt die Klassenreferenz dar.

EywDevelopersTutorial01.pdf

Dieses Tutorial beschreibt schrittweise die Erstellung eines einfachen Bildverarbeitungsblocks. Die Im „EyesWeb Programmer's Guide“ beschriebenen Vorbereitungen/Installationen sind Voraussetzung.

EywDevelopersTutorial02.pdf

CSimpleEywBlock: Hier wird eine weitere, einfache Methode um Blöcke zu erstellen beschrieben.


Artikel zu Anwendungen mit EyesWeb

Die Artikel enthalten auch Vorgehensweisen und Beispiele zum Schreiben eigener EyesWeb-Blöcke