Neue Version auf
Work-In-Progress
(oder siehe Link 1. Post in diesem Thread)
Ich habe mich dazu entschieden hier mal wieder eine Version online zu laden.
Es gibt (schon seit Anfang an) einen grundlegenden Konzeptunterschied zu anderen Frameworks im Programm "ImageRecognition2":
Alle Filter können immer benutzt werden, diese liefern dann aber nicht unbedingt ein Ergebnis, d.h. es kann z.B. BinaryDilation für ein Farbbild aufgerufen werden, ohne dieses vorher binarisiert zu haben. Deswegen erhält man aber keine Exception.
Grund: Es wäre ja möglich, dass wir ein teilbinarisiertes Bild haben. Dann funktioniert der Filter normalerweise an den binarisierten Stellen.
IMHO hat man so mehr Freiheit.
Zitat: |
Es gibt folgende Änderungen: |
Einzelbildbearbeitungsfilter
- Es wurden wieder einige Filter korrigiert (u.a. MorphologieFilter)
- Binarisierungsfilter können jetzt mit verschiedenen Farben betrachtet werden
(z.B. kann bei Close Weiß als Hintergrundfarbe und Schwarz als Vordergrundfarbe betrachtet werden, obwohl das Bild vorher mit Weiß als Vordergrundfarbe
- Einige kleine Änderungen an den Objektextraktorn
- Es gibt jetzt einen frei definierbaren Konvolutionsfilter der auch funktioniert
- SkinningFilter sollte jetzt besser funktionieren
- ColorBlobExtractor benutzt jetzt "UnsafeBitmap" (schneller)
- ContourExtractionTwoSteps benutzt keinen Lambda-Filter mehr, viel schneller, da keine Vor-Kompilierung mehr benötigt wird.
- AnaglyphExtract hinzugefügt
- AnaglyphFilter aktiviert (funktioniert jetzt)
- Depthmapcreation für Stereobilder hinzugefügt
- PerPixelFilter mit Delegate hinzugefügt, dieser kann mit beliebigen einfachen
delegates initialisiert werden, die Delegate Funktion wird dann auf jedes Pixel angewendet
- Lipschitz Filter weiter ausprogrammiert
- SimpleBlobExtractor hinzugefügt (Labelling noch fehlerhaft)
- WindowedSinc Filter weiter ausprogrammiert
- Mehr Filter in der Frequenzdomäne vorgesehen
- ChainCode Filter hinzugefügt
- Color Filter für jeden Farbraum hinzugefügt
- Mit UnsafeBitmap.FromImage können jetzt sowohl PGM, PBM als auch PPM, PCX und TIF geladen werden (noch weitestgehend ungetestet)
- Mit UnsafeBitmap[x,y,channel] kann jetzt ein Pixel gesetzt oder geholt werden (kanalweise)
- Funktion für den Graudurchschnitt gleichgroßer Bilder in einem Ordner
- PixelDivision, Addition, Subtraktion, Modulo usw. funktionieren jetzt (auch vom Testinterface Imagerecognition2 aus) ebenso Bool'sche Operatoren wie NAND, NOR, XOR, OR, AND, NOT usw.
Videofilter
- Videofilter vorgesehen: MotionDetection hinzugefügt
Zitat: |
In ImageRecognition2:
- Im Interface unter dem Menüpunkt Script sind jetzt alle Filter vorhanden
- Ein paar Funktionen haben eine Maske bekommen á la Photoshop, mit Preview-Funktion
(Es sind zwar schon für fast alle Filter Masken vorprogrammiert, aber diese sind noch längst nicht alle eingebaut.)
- Settings werden gespeichert (Open new window after action usw.) |
Viele kleine programmatische Änderungen, wie z.B. private Variablen in protected umgeändert und falls gefehlt, Public Properties hinzugefügt wo benötigt
Was ist geplant?
Funktionalität:
- Bessere Objekterkennungen
- Backprojections
- Histogrammfunktionen
- Bildstatistikfunktionen
- Klassifizierungsfunktionen
- Merkmalsdeskriptoren
- Ein paar komplexe Filter:
Segmentieren von Menschen in einem Bild (voll gekleidet)
Allgemein:
- Natürlich weitere Verbesserungen vorhandener Filter gemacht
- Geschwindigkeitsverbesserungen
- Erweiterung des Interfaces mit allen Masken für ImageRecognition2
Was ist das allgemeine langfristige Ziel dieses Frameworks:
Es soll sich dem Funktionsumfang von MATLAB Image Processing Toolbox, sowie Halcon immer mehr annähern
Was ist das allgemeine kurzfristige Ziel dieses Frameworks:
Einzelne Probleme die hier gestellt werden beantworten und lösen zu können, im Idealfall ohne Extraprogrammieraufwand, d.h. ausprobieren der Filtersequenz und evtl. Objekt-Extraktor soll ausreichen, um die Informationen zu bekommen die man will.
Und warum gibt es ImageRecognition2, die Oberfläche mit den vielen Menüpunkten?
Manchmal ist es ziemlich schwierig die richtigen Filter und vor allem die richtige Sequenz herauszufinden. ImageRecognition2 soll helfen die Sequenzen herausfinden zu können. Dazu werden viele Masken mit Einstellungen benötigt.
Solange die Masken noch nicht alle existieren können über den Menüpunkt "Window->Script" und den Button "Propertygrid" alle Einstellungen getestet und ausprobiert werden.
Auch für Echtzeitvideobearbeitung gibt es einen Menüpunkt:
Wird der entsprechende Menüpunkt eingeschaltet, wird - falls vorhanden - eine Liste der verfügbaren Devices angezeigt. Dieses kann dann ausgewählt werden. Es erscheint ein Dialog mit 2 Live-Bildern (links original, rechts das Bild auf das der Filter angewendet wird). In der Combobox kann dann der entsprechende Filter ausgewählt werden.
Weiterhin gibt es die Möglichkeiten einstellbare Verzeichnisse zu überwachen, online Flickr, Google pics und weitere Plattformen zu durchsuchen, sowie Screenshots von offenen Fenstern oder Controls über eine Auswahlliste vorzunehmen usw.
In einer späteren Version werden wahrscheinlich auch einzelne Frames von Videos ausgelesen werden können... wir wollen ja schließlich alle Bildquellen nutzen? ;-)