Filterung | BVA-System

Posts Tagged ‘Filterung’

Ende der ruhigen Zeit …

Montag, Dezember 7th, 2015

So viel Abstand wie jetzt hatte ich noch nie zwischen zwei Versionen des BVASystems. Aber jetzt habe ich mich endlich dazu aufgerafft, wieder eine neue Version zu veröffentlichen. Auch wenn es in den letzten Monaten sehr ruhig gewesen ist, so habe ich trotzdem fast täglich ein klein wenig was am BVASystem programmiert. Meist habe ich dabei aber nur „Schönheitsfehler“ im Quelltext beseitigt, so das es wenig darüber zu berichten gab.

Entwicklung des BVASystems in der statischen Code-Analyse Sonar

Entwicklung des BVASystems in der statischen Code-Analyse Sonar

Die einzige wirkliche Neuerung, die ich vorzeigen kann, ist ein Overlay-Panel in der Einzelbildansicht. Damit ist nun auch in der Einzelbildansicht ersichtlich, ob das angezeigte Foto den eingestellten Filterbedingungen entspricht. Damit das Overlay nicht stört, wird es automatisch entfernt, sobald man die Maus drüber bewegt.

Overlay zur Anzeige einer aktiven Bildfilterung

Overlay zur Anzeige einer aktiven Bildfilterung

Ein hunderprozentig festgelegt, womit ich nun weitermache, habe ich mich noch nicht. Fest steht allerdings, das ich keine Lust mehr darauf habe, nur interne Änderungen vorzunehmen. Rein vom Interesse her, würde ich gerne etwas machen um ähnliche Fotos zu detektieren. Da ich dafür allerdings einiges ausprobieren muss, bevor ich eine endgültige  Lösung gefunden habe, wird es wohl im nächsten Jahr einen weiteren Test-Dialog geben, in dem ich unterschiedliche Wege zur Merkmals-Extraktion ausprobieren kann. Weiterhin habe ich definitiv vor, die Oberfläche des Programmes zu verbessern, so das die Bedienung noch einfacher/übersichtlicher wird.

Jahresfazit 2014

Mittwoch, Dezember 31st, 2014

Auch dieses Jahr möchte ich hier wieder mit einem Jahresfazit abschließen. Im Gegensatz zum letzten Jahr dachte ich bis eben, das dieses Fazit etwas durchwachsener ausfallen würde, da ich gerade die letzten Monate doch etwas durchhing. Allerdings ist mir eben bewusst geworden, das in den vergangenen 12 Monaten doch recht viel passiert ist.

Neue Schlagwortfunktionen

Die bestehenden Schlagwortfunktionen wurden in diesem Jahr komplettiert. Es ist nun möglich, mehrere Schlagworte zusammenzuführen, Schlagworte umzubenennen und natürlich auch zu löschen. Alle Funktionen sind in einem Popup-Dialog untergebracht, der sich mit der rechten Maustaste über dem Schlagwort öffnen lässt. Außerdem entstand ein Schlagwortkonfigurationsdialog mit dem die Schlagworte bequem zu Schlagwortkategorien zugeordnet werden können.

Ansichtseinschränkung

Völlig neu hinzugekommen ist die Funktion zur Einschränkung der in den Bildlisten angezeigten Fotos. Es stehen mittlerweile einige Kriterien zur Verfügung, mit denen die Ansicht eingeschränkt werden kann. Fotos die den ausgewählten Kriterien nicht entsprechen, werden nun gar nicht mehr angezeigt. Allerdings ist die Ansichtseinschränkung bisher nur für die Datenbankansicht möglich, da sie auf modifizierten SQL-Befehlen basiert.

BVASystem zum Jahresabschluss 2014

BVASystem zum Jahresabschluss 2014

Bildfilterung

Wie angekündigt, wurde die Bildfilterung im vergangenen Jahr ausgebaut. Es sind eine Menge Kriterien dazugekommen, die zur Filterung genutzt werden können. Herausfordernd hierbei war für mich, das fast alle Kriterien eine selbst geschriebene Komponente zur Festlegung benötigten. Dadurch ist aber eine Oberfläche entstanden, mit der ohne viel Text möglichst flexible Filter eingestellt werden können. Neu ist ebenfalls, das eine aktive Bildfilterung durch ein Symbol in der Hauptstatusleiste angezeigt wird.

Sortierung

Die Sortierung der Bildlisten wurde komplett überarbeitet, da sie  bisher leider nicht richtig funktionierte. Nun können alle Listen nach Bildtitel, Aufnahmedatum und nach der Bildfilterung sortiert werden. Gerade letzteres ist sinnvoll, wenn man die zur Filterung passenden Fotos zusammen sehen möchte.

Export

Zu guter letzt ist noch der Bildexport erwähnenswert. Es ist seit diesem Jahr möglich, Fotos die einmal den Weg in die Datenbank gefunden haben, wieder zu exportieren. Dabei stehen verschiedene Modi zur Auswahl, so das Bilder zum Beispiel auch gleich in reduzierter Bildgröße exportiert werden. Dies habe ich benötigt, da ich in meinem Foto-Blog die Bilder nicht in voller Auflösung veröffentliche.

Ausblick

Der Ausblick aufs nächste Jahr fällt mir ehrlich gesagt schwer. Zum einen stehen noch jede Menge interne Änderungen an, die kaum sichtbare Veränderungen bringen und zum zweiten habe ich mittlerweile ein ganzes Buch voller guter Ideen und Wünsche zusammengetragen. Fakt ist, das ich auf jeden Fall erst einmal die angefangenen Änderungen zu Ende bringe. Damit steht fest, das es bald eine Demo-Datenbank geben wird und das früher oder später auch eine lokale SQLite Variante genutzt werden kann. Außerdem habe ich mir gerade vor Weihnachten eine NAS-Festplatte gekauft, auf der ein MySQL-Server läuft. In den nächsten Wochen werde ich ausprobieren, ob der Server für das BVASystem ausreicht. Zu guter letzt habe ich mir vorgenommen, im nächsten Jahr wieder mehr zu bloggen. Dieses Jahr gab es gerade zum ende hin, leider viel zu wenig Artikel.

Eine schwere Entscheidung: Wie geht es weiter?

Freitag, November 7th, 2014

Auch in der heutigen neuen Programmversion habe ich wieder ein weiteres Filterelement erstellt und an den internen Änderungen weitergearbeitet. Da aber mittlerweile die 3 Monate um sind, die ich normalerweise zwischen den stabilen Softwareversionen einhalten möchte, stellt sich mir die Frage, wie ich jetzt weiter entwickeln soll.

Filterkriterium Besitzer des Bildes

Filterkriterium Besitzer des Bildes

Die internen Änderungen, die ich mir vorgenommen habe, sind mittlerweile alle fertig. Es sind in den letzten Wochen jede Menge neue Filter entstanden. Aber rechtfertigt dies eine neue stabile Softwareversion? Bisher war es ja immer so, das ich eine größere Änderung bis zur nächsten stabilen Softwareversion fertigstellen konnte. Dieses mal sind die „möglichen“ größeren Änderungen noch relativ weit weg.

Zum ersten wäre da die Testdatenbank, welche auf dieser Homepage installiert wird. Nur dafür habe ich bisher fast alle Datenbankzugriffe auf eine neue Zugriffstechnologie umgestellt. Aktuell wäre ich soweit, das alle Funktionen, die keine Änderungen an der Datenbank vornehmen, ausprobiert werden könnten. Mit dem Worker wartet hier aber noch ein recht großes Stück arbeit.

Die zweite große Änderung, auf die ich hingearbeitet habe ist die lokale SQLite Datenbank. Diese habe ich für Anwender eingeplant , die ihre Bilder nicht innerhalb der Datenbank speichern wollen. Auch hierfür bräuchte ich die neuen Datenbankzugriffe. Außerdem fehlt hier noch das Modul, welches die lokale Datenbankstruktur erstellt. Auch muss das Laden der Bilder hierfür noch angepasst werden.

In den nächsten Tagen werde ich mich wohl zwischen 3 Möglichkeiten entscheiden müssen. Entweder ich veröffentliche eine stabile Softwareversion oder ich versuche eine der beiden großen Änderungen abzuschließen. Sicherlich hätte da die Testdatenbank bessere Chancen, da ich den benötigten Aufwand dafür geringer einschätze. Es wäre schön, wenn ich sie dieses Jahr noch fertigstellen könnte. Denn ich denke, das der bisher hohe Aufwand der Datenbankinstallation, viele potentielle Nutzer vom Test des BVASystems abhält. Auf der anderen Seite sehne ich mich allerdings auch nach einem Befreiungsschlag, wie ich ihn immer nach der Veröffentlichung einer stabilen Softwareversion erlebe. Endlich könnte ich dann wieder mit etwas beginnen, wodurch sichtbare Erfolge entstehen.

Änderungs-Sammelsurium Teil 2

Montag, April 21st, 2014

Nachdem ich bereits in der letzten Version angefangen hatte viele kleine Änderungen umzusetzen, so habe ich dies in den letzten Wochen fortgeführt. Heute Nacht ist die letzte Änderung fertig geworden, die ich unbedingt für das Verschlagworten meiner Fotos benötige. Oft habe ich nämlich das Problem, das ich mehrere Fotos aufgenommen habe, die die gleichen Motive zeigen und daher mit der gleichen Schlagwortkombination versehen werden müssen. Das immerwieder gleiche raussuchen und anklicken der Schlagworte ist ermüdend und fehleranfällig. Daher habe ich nun die Möglichkeit geschaffen, die Schlagworte eines Fotos zu kopieren, um sie bei einem anderen Foto wieder einfügen zu können. Aber auch andere Themen standen an der Tagesordnung.

Anfänge zur Integration einer lokalen Datenbank

In vorherigen Blogeinträgen hatte ich bereits geschrieben, das es mich stört, das immer mehr Funktionen des BVASystems nur verfügbar sind, wenn ein Datenbanksystem installiert wurde. Da dieses recht aufwendig ist, wird aus meiner Sicht ein Test des Programmes erschwert. Meine Lösung sieht vor, das ich eine lokale Datenbankdatei erstelle, in der die vom Nutzer eingegebenen Daten gespeichert werden.  Bilder möchte ich nicht direkt in der Datenbank ablegen. Es sollen nur Verknüpfungen zu Fotos auf der Festplatte erstellt werden. 

Mit der Integration der lokalen Datenbank habe ich nun begonnen. In einem speziell erstellten Worker-Task wird überprüft, ob die Datenbank-Datei vorhanden ist. Ist sie nicht vorhanden, wird sie angelegt. Standardmäßig wird die Datei im gleichen Ordner gespeichert wie die Einstellungsdateien des Programmes.

Filterelement zur automatischen Bildbewertung

Das BVASystem speichert ab, wie oft ein Bild angeschaut wurde. Dadurch erhalten die Fotos, die am meisten angesehen werden, eine hohe Bildbewertung. Weniger oft angesehenende Bilder erhalten dementsprechend eine weniger gute Bewertung. Analog zum Filterelement „Manuelle Bildbewertung“ habe ich nun ein Filterelement geschaffen, das nach der automatischen Bildbewertung filtert. Die Bedienung des Elementes ist genau die gleiche, wie bei der manuellen Bildbewertung.

Filterkriterium automatische Bildbewertung

Filterkriterium automatische Bildbewertung

Kopieren und Einfügen von Schlagwortkombinationen

Das Kopieren und Einfügen von Schlagwortkombinationen wurde in das Bildinformationspanel Schlagworte integriert. Auf der linken Seite des Panels befinden sich 2 neue Knöpfe. Mit dem obereren wird die aktuell aktive Schlagwortkombination in die Zwischenablage kopiert. Das Kopieren kann beliebig oft wiederholt werden. Die vorher kopierten Schlagworte gehen dabei nicht verloren. Durch den unteren Knopf wird dann die Einfügen Funktion aktiviert. Dort öffnet sich ein Popup-Dialog, in dem eine der kopierten Schlagwortkombinationen ausgewählt werden kann. Nach der Auswahl werden die Schlagworte bei dem aktuell aktiven Foto dann natürlich über den Worker gesetzt.

Funktion zum Einfügen einer Schlagwortkombination

Funktion zum Einfügen einer Schlagwortkombination

Sortierung der Bildlisten

Montag, März 3rd, 2014

Für die Sortierung von Bildlisten nach der Übereinstimmung der ausgewählten Filterkriterien musste ich den bisherigen Ablauf des Sortiervorgangs komplett verwerfen und neu implementieren. Die bisher eingesetzte einfache Lösung musste durch eine viel kompliziertere ersetzt werden. Diese hat nun allerdings einige Vorteile, die ich nicht mehr missen möchte.

Der größte Vorteil dabei ist, das die Sortierung robust gegenüber Änderungen ist. Wird zum Beispiel der Bildtitel verändert, so verändert sich automatisch die Position des Bildes in der Bildliste. Gerade für die Filterkriterien-Übereinstimmung ist dies total praktisch, da sich die Übereinstimmungen wahrscheinlich mit jeder Änderung an den Filterkriterien ändern werden. Ein weiterer Vorteil der neuen Sortierung ist, das der Zugriff auf die einzelnen Elemente beschleunigt werden konnte. Bisher musste nach der Ausführung einer Worker-Aufgabe die komplette Bildliste durchlaufen werden, um das entsprechende Foto wiederzufinden. Die Position des Bildes in der Bildliste lies sich leider nicht nutzen, da sich diese während der Ausführung der Aufgabe hätte ändern können. Da die interne Sortierung der Bildliste nun fest ist, kann jetzt durch eine binäre Suche jedes beliebige Element der Liste schnell gefunden werden.

Sortierte gefilterte Bildliste

Sortierte gefilterte Bildliste

Dadurch, das die Bildliste eines der zentralen Elemente des BVASystems ist, musste ich in den letzten beiden Wochen so ziemlich jede Funktion des Programmes verändern. Zuerst hoffte ich, das ich diese Änderungen nach und nach durchführen  könnte. Dies stellte sich allerdings als nicht praktikabel heraus. Es musste also alles auf einmal sein. Vor 2 Wochen sah das Programm daher total erbärmlich aus. Überall Zugriffsverletzungen, Fehler und sonstige komische Verhaltensweisen. Daher bin ich nun um so glücklicher, das die neue Sortierung einsatzbereit ist und das Programm wieder so funktioniert, wie es funktionieren soll.

Ausblick

Trotzdem habe ich mir für die nächsten 2 Wochen vorgenommen, nochmals alles gut zu testen und auftretende Fehler zu korrigieren. Außerdem werde ich ein weiteres ewiges offenes Problem, die Auswahl mehrerer Bilder, lösen. Ähnlich wie im Windows Explorer möchte ich,  wenn bei der Auswahl die Shift-Taste gedrückt wird, das alle Bilder, die sich zwischen den beiden angeklickten Fotos befinden, markiert werden.

Sichtbare Veränderungen an allen Großbaustellen

Donnerstag, August 15th, 2013

In den letzten Wochen kam ich mir ein wenig so vor, als ob ich auf dem Bau arbeite. An mehreren Stellen habe ich im BVASystem „Baustellenschilder“ aufgestellt, ein mehr oder weniger großes Loch aufgerissen, um dann anschließend die nächste Baustelle zu eröffnen. Beim Programmieren arbeite ich allerdings ganz gerne in dem Stil, da so bereits frühzeitig alle geplanten Änderungen durchdacht sind und es dann meist nur noch eine Fleißarbeit ist, sie zu Ende zu bringen. Dafür habe ich ja nun gut 3 Monate Zeit und bin guter Dinge, das ich mit der Zeit hinkommen werde. Im Detail habe ich mit folgenden Änderungen begonnen:

Werkzeug: Histrogramm

Das Histogramm-Werkzeug soll die Möglichkeit zur Bildbewertung unterstützen. In einem Histogramm wird die Farbverteilung des Bildes dargestellt. Somit ist leicht zu erkennen, ob die Farben gleichmäßig verteilt sind, ob das Bild über- oder unterbelichtet wurde, ob der mögliche Farbumfang optimal genutzt wurde usw. Das Histogramm-Werkzeug wird ähnlich umgesetzt werden, wie die anderen beiden bereits fertigen Werkzeuge. Umgesetzt  ist bisher der Anzeigebereich. Das Werkzeug kann ein- und ausgeblendet werden und die letzte Werkzeugposition wird in den Programmeinstellungen gespeichert. Vom geschätzten Arbeitsaufwand ist dieses Feature wohl das kleinste und wird daher wohl als erstes fertig werden.

Zwei der drei Großbaustellen im Bild

Zwei der drei Großbaustellen im Bild

Filterung

Nachdem in der Bilddatenbank nun Schlagworte erfasst werden können, wird es Zeit, das die gespeicherten Informationen genutzt werden können um ein Foto gezielt wiederzufinden. Dafür sollen vom Anwender beliebige Filter definiert werden können, mit denen die Anzahl der Bilder in der aktiven Bildliste reduziert werden kann. Es wird zum Beispiel möglich sein, das nur noch die Bilder angezeigt werden, die mit dem Schlagwort „Nordsee“ versehen wurden. Da mir spontan sehr viele Filtermöglichkeiten einfallen, wird diese Änderung wohl die meiste Zeit in Anspruch nehmen. Bisher habe ich damit begonnen, auf der rechten Programmseite auf einem Animationspanel, die Oberfläche zu entwerfen, die zur Festlegung der Filter dienen wird.

Schlagwortkategorien und Schlagwortkonfigurationsdialog

Vor einigen Tagen berichtete ich ja bereits, das es notwendig war, die Datenbankstruktur für die Schlagwortkategorien zu ändern. Zum Ausprobieren der neuen Programmversion müsst ihr daher eure DB-Struktur mit dem Administrationstool aktualisieren. Bisher war es so, das ein Schlagwort genau einer Kategorie zugeordnet werden musste. Nun ist es möglich, das ein Schlagwort zu beliebig vielen Schlagwortkategorien zugeordnet werden kann. Bei der Implementation habe ich begonnen, die Schlagwortkategorien an 2 Stellen im Programm zu integrieren. Zum ersten werden die Schlagwortkategorien, wie auch die Fotoalben in der Baumstruktur angezeigt. Nachdem eine solche Kategorie ausgewählt wurde, sollen vom System alle Bilder in einer Liste zusammengestellt werden, welche mit mindestens einem Schlagwort der Schlagwortkategorie verknüpft wurden. Als zweites habe ich damit begonnen, einen Dialog zu schaffen, in dem die Schlagworte mit den entsprechenden Schlagwortkategorien verknüpft werden können. 

Ausblick

Auch in den nächsten Wochen werde ich an allen 3 großen Baustellen weiterarbeiten. Wahrscheinlich werde ich allerdings die meiste Zeit für das Histogramm-Werkzeug aufwenden, damit ich ein eindeutiges Thema für den nächsten Blog habe. Ob ich aber das Werkzeug  schon komplett fertig bekomme, kann ich noch nicht sagen. Da die Berechnung des Histogramms einige Zeit in Anspruch nehmen wird, werde ich wohl eine threadbasierte Berechnung umsetzen, die leider etwas komplizierter und damit aufwendiger sein wird. 

Prototyp: Animiertes Pagecontrol (Teil 2)

Freitag, Februar 8th, 2013

Vor einigen Tagen wurde mir bewusst, das ich gerade viel zu viele offene Punkte versuche gleichzeitig zu bearbeiten. Daher habe ich mich entschlossen, etwas gezielter an den Sachen zu arbeiten, die ich relativ schnell abschließen kann. Meine erste Wahl fiel auf das animierte Pagecontrol.

In der letzten Woche habe ich soviel Zeit wie möglich in diese Komponente und die dazugehörige Test-Anwendung gesteckt. Ich denke das ich nun soweit bin, das ich alle benötigten Eigenschaften und Funktionen umgesetzt habe, das ich an die Integration der Komponente ins BVASystem denken kann. Geplant ist diese Integration nun für die Version 2.1.3.59-dev, also in 3-4 Wochen.

Testanwendung für animiertes Pagecontrol Teil 2

Testanwendung für animiertes Pagecontrol Teil 2

Für die Neugierigen habe ich wieder die Testanwendung zum Download zusammengepackt. Auf der ersten Seite des animierten Pagecontrols, welches sich auf der rechten Seite befindet , sind nun einige Steuerelemente zur Bedienung des animierten Pagecontols auf der linken Seite zu finden. So können zum Beispiel die Beschriftungen, die Sichtbarkeit der einzelnen Seiten und sogar die Animationsgeschwindigkeit geändert werden. Weiterhin befinden sich auf dem rechten Pagecontrol auf Seite 2, 2 Knöpfe. Damit kann jeweils ein weiterer Dialog geöffnet werden. In dem ersten kann das animierte Panel, welches sich nach oben bzw. nach unten öffnet getestet werden. Der zweite Dialog zeigt ein animiertes Pagecontrol, bei dem die Animationsmöglichkeit deaktiviert wurde. Letzteres werde ich benötigten, damit ich auch die Pagecontrols ersetzen kann, wo die Animation unerwünscht ist. Mir ist dies wichtig, damit die Pagecontrols alle gleich aussehen.

Prototyp: Animiertes Pagecontrol

Samstag, Januar 12th, 2013

Am Ende des letzten Jahres schrieb ich, das ich an einem Prototypen arbeite, der die Oberfläche des BVASystems stark verändern wird. Da ich nun alle größeren Probleme scheinbar gelöst habe, möchte ich den Prototypen heute vorstellen. Besonders daran ist diesmal, das ich zum ersten Mal eine Änderung nicht direkt in der Bilddatenbank umgesetzt habe. Ihr könnt euch den Prototypen herunterladen und quasi selber einmal ausprobieren.

Vorstellung

Das wichtigste an einer Bilddatenbank sind natürlich die Bilder und daher sollten sie den größten Teil der Oberfläche einnehmen. Je mehr Funktionen nun allerdings in das Programm integriert werden, desto kleiner wird der Bereich, der für die Fotos übrig bleibt. Daher habe ich mir gedacht, das es gut wäre, wenn nicht ständig benötigte Oberflächenelemente ausgeblendet werden können. Entstanden ist dabei ein animiertes Pagecontrol, welches  an der linken oder rechten Seite eines Dialoges angeordnet werden kann. Fährt man mit der Maus über den Beschriftungsbereich der Komponente, so wird sie durch eine kleine Animation geöffnet. Solange man sich mit der Maus über dem geöffneten Pagecontrol befindet, kann dieses ganz normal benutzt werden. Verlässt man den Bereich, so wird das Control wieder auf den Beschriftungsbereich reduziert. Zusätzlich hat man rechts oben noch die Möglichkeit das Pagecontrol zu fixieren. 

Testanwendung für animiertes Pagecontrol

Testanwendung für animiertes Pagecontrol

Geplanter Einsatz im BVASystem

Im BVASystem möchte ich das animierte Pagecontrol an 2 Stellen einsetzen. Als erstes ist geplant den jetzigen Bereich, in dem die Verzeichnis- bzw. Datenbankstruktur dargestellt werden, durch ein animiertes Pagecontrol zu ersetzen. Sofern das animierte Pagecontrol nicht von euch fixiert wird, steht dadurch fast die gesamte Monitorbreite zur Darstellung der Fotos zur Verfügung.  In der Standard-Installation wird das Pagecontrol wohl fixiert sein, damit die gewohnte Oberfläche noch vorhanden bleibt. Es wäre dann eure Entscheidung, ob ihr den Bereich immer sehen wollt, oder ob er nur bei der Auswahl eines neuen Ordners sichtbar sein soll. Auf der rechten Seite ist ein weiteres Pagecontrol geplant, auf dem Möglichkeiten zur Filterung der aktiven Bildliste geschaffen werden sollen. Beispielsweise soll es möglich sein, das nur noch die Fotos angezeigt werden, die ihr mit 5 Sternen bewertet habt. Oder es sollen nur die Bilder angezeigt werden, die mit der Kamera „X“ aufgenommen habt. Das Pagecontrol zur Filterung der Bildliste wird in der Standardinstallation nicht fixiert sein. 

Zeitplanung

Ich denke, das noch einige Zeit vergehen wird, bis das animierte Pagecontrol seinen Weg in das BVASystem findet. Es sind noch eine Menge von Details zu erledigen, damit die Komponente alle benötigten Eigenschaften erhält. Ich habe vor, die Komponente außerhalb des BVASystems fertig zu stellen und vor allem zu testen. Über meine Fortschritte dabei werde ich sicher hier im Blog berichten. Sobald die Komponente fertig ist, wird die Ersetung auf der linken Programmseite kein Problem sein und recht zügig erfolgen. Die Filterungsfunktionen werden dann um einiges aufwendiger, da hier nicht nur eine bestehende Komponente ausgetauscht werden muss. Wahrscheinlich werde ich mit der Filterung erst beginnen, sobald ich meine aktuelle Arbeit an den Schlagworten abgeschlossen habe.