PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Implementierungsvorschläge - Was soll ich noch einbauen?


BAGZZlash
2012-01-25, 17:40:59
Gestern hatte ich irgendwie Lust, mal ein Programm zu bauen, mit dem man arithmetische Operationen auf Bilder anwenden kann. Sicher bietet das so ziemlich jede Feld-, Wald- und Wiesenbildbearbeitungssoftware. Dennoch hatte ich einfach Lust, sowas mal zu bauen. Dann habe ich auch (für den Hausgebrauch) ein Programm, bei dem ich weiß, was es tut und das ich jederzeit noch anpassen kann. Außerdem war mir wichtig, ein gewichtetes Mittel berechnen zu können, bei dem die Gewichte sich nicht notwendigerweise zu eins aufaddieren müssen.

So sieht das Ganze momentan aus (Klick vergrößert):

41812

Man lädt zunächst die beiden Quellbilder. Wichtig ist, dass beide Bilder auf's Pixel genau gleich groß sein müssen. Das Programm ist in erster Linie dazu gedacht, mit Bitmasken zu arbeiten, da hätte alles andere als gleich große Bilder keinen Sinn. Wenn ein Bild geladen wurde, wird es skaliert in dem kleinen Vorschaufenster angezeigt. Ist das Bild kleiner als das Fenster, so wird es vergrößert, sonst verkleinert.

Nachdem das Bild in der Vorschau gelandet ist, hat man mitunter noch ein paar Sekunden lang die Sanduhr oder den sich drehenden Kreis als Mauszeiger. Das liegt daran, dass das Bild intern noch in zwei Arrays geschaufelt wird, und meine Methode dafür ist nicht die schnellste. Bei sehr großen Bildern kann das schon ein paar Sekunden dauern.

Nachdem man beide Bilder geladen hat, kann man mit den Funktionen rechts oben rumspielen. (Für die NOT-Operationen reicht jeweils natürlich ein einziges Bild.)
Die Frage ist: Was fehlt da noch? Hab' Lust, noch mehr einzubauen, aber ich weiß nicht, was. :redface:

Mit den Funktionen unten kann man das Ergebnis, welches im Ergebnisvorschaufenster (ebenfalls skaliert) dargestellt wird, nochmal als Quellbild verwenden, oder man speichert eben das Ergebnis.

Die internen Berechnungen und auch das gespeicherte Endergebnis liegen natürlich in voller Auflösung vor, die skalierten Bilder werden tatsächlich nur für die Vorschau verwendet.

Wenn's einer ausprobieren will, hier ist das Progrämmchen: 41811.

Was könnte man noch einbauen? Es muss schon zum Anspruch des Programms passen, es soll um arithmetische Operationen gehen: Natürlich könnte man Sache wie "heller oder dunkler machen" oder so einbauen, aber das finde ich witzlos, denn das kann wirklich jedes Programm. Wer hat noch gute Ideen?

Monger
2012-01-25, 18:10:30
Ich verweise erstmal auf das Zitat von Antoine de Saint-Exupéry in meiner Signatur.

Und ich persönlich fände eine überarbeitete GUI sinnvoll. Deine Operationen sollten ja alle beliebig kombinierbar sein. Ähnlich wie bei einem Formeltaschenrechner wäre es nett, nicht nur das Endergebnis zu sehen, sondern die Operationen die dorthin geführt haben. Also ein (editierbarer) Stack von Operationen, der dann irgendwie angezeigt wird:

0,4A + 0,6B * NOT * XOR -> GO.

Das würde die etwas klobige Oberfläche entschlacken, und macht das Programm fit für z.B. Undo/Redo.

BAGZZlash
2012-01-25, 18:31:01
Gute Idee, werde ich mich mit beschäftigen, danke. (y)
Weiteres?

Gast
2012-01-25, 19:15:08
Du könntest natürlich eine Skalierung einbauen, falls die Bilder doch unterschiedlich sind. Je nach Benutzerauswahl wird das kleinere Bild größer oder das größere Bild kleiner gemacht.

Welche Dateiformate kann das Programm? Evtl. da die Unterstützung weiterer Formate einbauen (png, gif, tiff).

Oder - dazu braucht man aber nur ein Bild und ist eventuell nicht das was du willst - dass man einen Filter auf das Bild anwendet.
Aber eben keinen fertigen Filter, sondern dass man selbst eine beliebige Matrix angibt (am besten Größe der Matrix auch einstellbar) und diese dann auf das Bild angewendet wird.

Gast
2012-01-25, 19:39:36
Oder auch etwas in Sachen usability: "Swap input images" und "Use result as image A/B" könnte als drag&drop-Funktion implementiert werden.
Falls du einfach eine technische Herausforderung suchst.

BAGZZlash
2012-01-25, 19:47:32
Oder - dazu braucht man aber nur ein Bild und ist eventuell nicht das was du willst - dass man einen Filter auf das Bild anwendet.
Aber eben keinen fertigen Filter, sondern dass man selbst eine beliebige Matrix angibt (am besten Größe der Matrix auch einstellbar) und diese dann auf das Bild angewendet wird.

Hm. Wie sähe so eine Matrix denn aus und was würde das Programm dann rechnen? Multiplikation der (quadratischen?) Filtermatrix mit einer gleich großen Matrix von Pixeln des Bildes, blockweise? Oder wie meinste das?

BAGZZlash
2012-01-25, 22:30:07
Oder auch etwas in Sachen usability: "Swap input images" und "Use result as image A/B" könnte als drag&drop-Funktion implementiert werden.
Falls du einfach eine technische Herausforderung suchst.
Das ist doch keine technische Herausforderung. Fällt eher unter "Vergess' ich immer, weil ich nie Bock drauf hab'." Ich meine, gute Idee vor Dir, danke, hab's gerade mal gemacht. (y) Aber es waren halt drei Zeilen Code, fertig. :redface: