dr4g0n76
EDIT 26.04.2012:
Lange nicht alle Menüpunkte funktionieren und das Rechteck das man mit der Maus aufziehen kann hat momentan auch keine Funktion... aber alles im entwickeln
Die wichtigsten Funktionen und Kürzel:
Fenster
CTLR-N -> neues Fenster aufmachen
STRG-ALT-C -> Fenster kaskadieren
STRG-ALT-H -> Horizontal anordnen
STRG-ALT-V -> Vertikal anordnen
New Window (open copy) -> vom aktuellen Fenster aus eine Kopie in einem neuen Fenster erstellen
New Window (last loaded) -> neues Fenster mit dem zuletzt geladenen Bild
Filter
CTRL-F -> Filter ausführen
Windows->Script:
Filter ausführen (oberer Execute-button)
hier auch Kanal auswählen, A,R,G,B, Mask (unterer Execute-button)
Oder direkt im Menü entsprechenden Filter auswählen
Lambdaausdrücke:
Oben im Filter eingeben oder aus Combobox auswählen
Menüpunkt Windows->Script: Script ausführen....
Bilder verknüpfen/Contextmenü oder Toolleiste:
Bilder im Fenster aus Childwindowliste auswählen...
EDIT: 17.01.2012
Hier gibt's ab jetzt kleine Tutorials usw. über diese Library:
http://lowlevelgraphicslibrary.blogspot.com/
[B]EDIT: 22.04.2010
Als Dateianhang am Ende dieses Beitrags verfügbar.
Es wird immer mal wieder von mir ein Testprojekt hochgeladen, aber das wird nicht explizit hier jedesmal vermerkt.
EDIT: Prerelease Versionen gibt es immer - wenn vorhanden - hier:
Anmerkung: Ich behalte mir vor, die Datei umzubenennen oder herauszunehmen.
Der Code kann jetzt hier
heruntergeladen werden (s. Ende dieses Posts).
Achtung: Das Projekt ist noch nicht gegen Fehler getestet.
Zudem hat die Basis Klasse das Interface IFilter bekommen.
Dieses wird beinhalten:
- Steps (Quasi Pixel in X-Richtung und Y-Richtung überspringen)
- Rectangle (Ausschnitt auswählen, auf den der Filter angewendet werden kann)
- einige grundlegende Funktionen wie in der System.Drawing.Bitmaps-Klasse z.B. Height / Width, GetPixel / SetPixel
Was schon drin ist:
Einige Experimentelle Filter:
- Neue Filter, z.B. Background-Estimation
- Farben runden
- Segmentierungen
- Colorspaces, Umrechnungen von RGB in verschiedene Farbräume und zurück u.a.
YUV, YCbCr, HCL, HSV, XYZ, CIELUV, CIELAB usw.
- verschiedene Kantenfilter und ein neuer Konturfilter
- verschiedene rudimentäre Segmentierungsfilter.
- Viele statische RGB-Funktionen unter ColorFunctions wie z.B. Summe der Channels,
MaxChannel, MinChannel, Channels vertauschen per String z.B. mach BGG oder RBG oder BGR aus Original RGB, Channel-Ratio,
usw. alle diese Funktionen sind in ColorFunctions ausprogrammiert.
- BitmapFunctions-Klasse um ein Bild auf verschiedene Arten z.B. in einen Stream oder Byte-Array und wieder zurück umzuwandeln, zu resizen und zu rotieren.
Einen Filter benutzen:
Die erste Zeile lädt das Bild,
die 2. Zeile instantiiert den Filter.
Dann wird der Filter angewendet
Zur Ausführung gibt es 3 Möglichkeiten:
1.) void Execute(bitmapSource);
Führt den Filter aus und bitmapSource enthält die neuen - veränderten - Informationen
2.) Bitmap ExecuteCloned(bitmapSource);
Führt den Filter geclont aus, d.h. bitmapSource wird nicht verändert, und die veränderte Bitmap wird zurückgegeben.
3.) void ExecuteMasked(bitmapSource, bitmapMask);
Führt den Filter aus und er wird nur an den Stellen angewendet in dem im Maskenbild weiße Pixel sind.
EDIT:
Als nächstes gibt es dann noch die Möglichkeiten:
4.) ExecuteChannelled
Für jeden Kanal kann angegegeben werden, ob das Ergebnis übernommen wird.
5.) ExecuteMaskedChannelled
Für jeden Kanal kann in Bezug auf die Maske angegeben werden, ob das Ergebnis übernommen wird.
EDIT: 4. und 5 sind jetzt implementiert.
Abkürzung des obigen Codes:
Es gibt bisher ( mind.) folgende
Filterkategorien:
- Farb-filter
- Konvolutions-Filter
- Morphologie-Filter
- Histogramm-Filter
- Kanten-Filter
- Ecken-Filter
- Frequenz-Filter
- Binarisierungs-Filter (Thresholding)
- Kontur-Filter
- Korrektur-Filter
- Korrelations-Filter
- Deplatzierungs-Filter
- Segmentierungs-Filter
- Makro-Filter
- Textur-Filter
- Mathematische Filter (algebraisch, logisch)
Über ein UnsafeBitmap Objekt kann auf einfache und schnelle Weise auf ein Bitmap zugegriffen und es verändert werden:
UnsafeBitmap bekommt als Eingang die originale Bitmap übergeben.
Dann wird intern alles durchgeführt um Unsafe auf die Bitmap zugreifen zu können.
Von außen sieht es aber aus, als würden wir ganz normal zugreifen.
ImageRecognition2.rar (3 MB, 42 mal heruntergeladen)
Hinweise:
Was tut sich aktuell?
EDIT: 15.03.2012
Aktuell geht es um alles fürs Vermessen und die Erkennung von Bildern, was eingebaut wird.
- Neuronale Netzwerke
- Snakes / Active Contours
3D:
- Parität / Depthmap
- Stereo: Anaglyph / Interlaced / 3d-Modellschätzung
Lange nicht alle Menüpunkte funktionieren und das Rechteck das man mit der Maus aufziehen kann hat momentan auch keine Funktion... aber alles im entwickeln
Die wichtigsten Funktionen und Kürzel:
Fenster
CTLR-N -> neues Fenster aufmachen
STRG-ALT-C -> Fenster kaskadieren
STRG-ALT-H -> Horizontal anordnen
STRG-ALT-V -> Vertikal anordnen
New Window (open copy) -> vom aktuellen Fenster aus eine Kopie in einem neuen Fenster erstellen
New Window (last loaded) -> neues Fenster mit dem zuletzt geladenen Bild
Filter
CTRL-F -> Filter ausführen
Windows->Script:
Filter ausführen (oberer Execute-button)
hier auch Kanal auswählen, A,R,G,B, Mask (unterer Execute-button)
Oder direkt im Menü entsprechenden Filter auswählen
Lambdaausdrücke:
Oben im Filter eingeben oder aus Combobox auswählen
Menüpunkt Windows->Script: Script ausführen....
Bilder verknüpfen/Contextmenü oder Toolleiste:
Bilder im Fenster aus Childwindowliste auswählen...
EDIT: 17.01.2012
Hier gibt's ab jetzt kleine Tutorials usw. über diese Library:
http://lowlevelgraphicslibrary.blogspot.com/[B]EDIT: 22.04.2010
Als Dateianhang am Ende dieses Beitrags verfügbar.
Es wird immer mal wieder von mir ein Testprojekt hochgeladen, aber das wird nicht explizit hier jedesmal vermerkt.
EDIT: Prerelease Versionen gibt es immer - wenn vorhanden - hier:
Anmerkung: Ich behalte mir vor, die Datei umzubenennen oder herauszunehmen.
Der Code kann jetzt hier
heruntergeladen werden (s. Ende dieses Posts).
Achtung: Das Projekt ist noch nicht gegen Fehler getestet.
Zudem hat die Basis Klasse das Interface IFilter bekommen.
Dieses wird beinhalten:
- Steps (Quasi Pixel in X-Richtung und Y-Richtung überspringen)
- Rectangle (Ausschnitt auswählen, auf den der Filter angewendet werden kann)
- einige grundlegende Funktionen wie in der System.Drawing.Bitmaps-Klasse z.B. Height / Width, GetPixel / SetPixel
Was schon drin ist:
Einige Experimentelle Filter:
- Neue Filter, z.B. Background-Estimation
- Farben runden
- Segmentierungen
- Colorspaces, Umrechnungen von RGB in verschiedene Farbräume und zurück u.a.
YUV, YCbCr, HCL, HSV, XYZ, CIELUV, CIELAB usw.
- verschiedene Kantenfilter und ein neuer Konturfilter
- verschiedene rudimentäre Segmentierungsfilter.
- Viele statische RGB-Funktionen unter ColorFunctions wie z.B. Summe der Channels,
MaxChannel, MinChannel, Channels vertauschen per String z.B. mach BGG oder RBG oder BGR aus Original RGB, Channel-Ratio,
usw. alle diese Funktionen sind in ColorFunctions ausprogrammiert.
- BitmapFunctions-Klasse um ein Bild auf verschiedene Arten z.B. in einen Stream oder Byte-Array und wieder zurück umzuwandeln, zu resizen und zu rotieren.
Einen Filter benutzen:
C#-Code: |
Bitmap bitmap = (Bitmap)Image.FromFile("blub.jpg");
|
Die erste Zeile lädt das Bild,
die 2. Zeile instantiiert den Filter.
Dann wird der Filter angewendet
Zur Ausführung gibt es 3 Möglichkeiten:
1.) void Execute(bitmapSource);
Führt den Filter aus und bitmapSource enthält die neuen - veränderten - Informationen
2.) Bitmap ExecuteCloned(bitmapSource);
Führt den Filter geclont aus, d.h. bitmapSource wird nicht verändert, und die veränderte Bitmap wird zurückgegeben.
3.) void ExecuteMasked(bitmapSource, bitmapMask);
Führt den Filter aus und er wird nur an den Stellen angewendet in dem im Maskenbild weiße Pixel sind.
EDIT:
Als nächstes gibt es dann noch die Möglichkeiten:
4.) ExecuteChannelled
Für jeden Kanal kann angegegeben werden, ob das Ergebnis übernommen wird.
5.) ExecuteMaskedChannelled
Für jeden Kanal kann in Bezug auf die Maske angegeben werden, ob das Ergebnis übernommen wird.
EDIT: 4. und 5 sind jetzt implementiert.
Abkürzung des obigen Codes:
C#-Code: |
new GrayScale().Execute(bitmapSource); //Bild in Grau umwandeln.
|
Es gibt bisher ( mind.) folgende
Filterkategorien:
- Farb-filter
- Konvolutions-Filter
- Morphologie-Filter
- Histogramm-Filter
- Kanten-Filter
- Ecken-Filter
- Frequenz-Filter
- Binarisierungs-Filter (Thresholding)
- Kontur-Filter
- Korrektur-Filter
- Korrelations-Filter
- Deplatzierungs-Filter
- Segmentierungs-Filter
- Makro-Filter
- Textur-Filter
- Mathematische Filter (algebraisch, logisch)
Über ein UnsafeBitmap Objekt kann auf einfache und schnelle Weise auf ein Bitmap zugegriffen und es verändert werden:
C#-Code: |
UnsafeBitmap bitmap = new UnsafeBitmap(_bitmapSource);
|
UnsafeBitmap bekommt als Eingang die originale Bitmap übergeben.
Dann wird intern alles durchgeführt um Unsafe auf die Bitmap zugreifen zu können.
Von außen sieht es aber aus, als würden wir ganz normal zugreifen.
C#-Code: |
List<Color> m_aColor = new List<Color>();
|
ImageRecognition2.rar (3 MB, 42 mal heruntergeladen)
Hinweise:
Was tut sich aktuell?
EDIT: 15.03.2012
Aktuell geht es um alles fürs Vermessen und die Erkennung von Bildern, was eingebaut wird.
- Neuronale Netzwerke
- Snakes / Active Contours
3D:
- Parität / Depthmap
- Stereo: Anaglyph / Interlaced / 3d-Modellschätzung
