Unified GIMP Framework ist endlich online

Angelegt von Andreas Steinel Thu, 20 Dec 2007 00:12:00 GMT

So, nun ist es endlich so weit. Mein früheres GIMP-Framework erblickt das Licht der Welt und man kann es in englischer Sprache (zumindest sollte es englisch sein) hier heruntergeladen werden.

Es ist die erste öffentliche Version und sie trägt die Versionsnummer 0.0.1 und bringt drei Beispielplugins mit. Momentan funktioniert nur die Erstellung von GIMP-Plugins. Alles weitere muss noch implementiert werden.

Diese Version richtet sich vorallem an die Leute, dich mich schon gefragt haben, wann das Framework endlich online steht.

Posted in ,  | keine Kommentare | keine Trackbacks

Fast Bilateral Filtering GIMP-Plugin

Angelegt von Andreas Steinel Thu, 06 Dec 2007 01:53:00 GMT

Ich habe mir gerade ein Fast Bilateral Filtering in meinem GIMP-Framework erstellt (hat so knapp eine Stunde gedauert) und habe es als Linux und FreeBSD-Version hier online gestellt.

Die jeweilige Datei einfach in den Ordner ~/.gimp-2.4/plug-ins kopieren und GIMP neustarten.

Der Effekt sieht – mehrfach angewendet – aus wie Toon-Shading:

Mit dem GIMP-Plugin kann man die zwei Parameter des Verfahrens einstellen, sowie die Anzahl der Iterationen angeben. Die Software ist natürlich ohne Gewähr und die Benutzung ist auf eigene Gefahr.

Posted in , , , ,  | keine Kommentare | keine Trackbacks

C/C++ und Debugging

Angelegt von Andreas Steinel Thu, 08 Nov 2007 00:18:00 GMT

Da ich seit einigen Wochen wieder etwas in die C/C++-Programmierung unter Linux/FreeBSD eingestiegen bin traf mich wiedereinmal der Schlag – oder besser – der SegFault. Einige Interessante Links zu Programmen, Tipps und Erkenntnisse im Überblick:

  • Linux und FreeBSD lassen Threads unterschiedlich abstürzen: FreeBSD killt den ganzen Prozess, Linux hingegen nur den Thread. Somit kann man prima den Mutterthread aushungern lassen, wenn er auf den Thread wartet.
  • Man sollte immer assert verwenden um Constraints zu prüfen, das erspart eine Menge Debugarbeit
  • const ist immer dein Freund (weiterlesen)
  • Memory Leaks kann man prima mit valgrind aufspüren, man muss sie dann nurnoch verstehen :-p
  • An Codingstandards sollte man sich halten um einem selbst und vorallem anderen (auch dem älteren ich) das Leben nicht unnötig schwer zu machen.
  • Ein Blick in die C++-Programming-FAQ ist oft hilfreich.
  • Ein Blick in ein C++-Buch eröffnet einen immer wieder neue Welten – valgrind dankt – denn mit new [] instanzierte Objekte wollen mit delete [] gelöscht werden.
  • Es gibt nix schöneres als ein abort mit glibc-error mit Stack Corruption und gdb kannt nicht mehr weiterhelfen (Hier hilft eigentlich immer valgrind)
  • printf’s Parameter auf einen Blick

Posted in , ,  | keine Kommentare | keine Trackbacks

SegFaults

Angelegt von Andreas Steinel Fri, 19 Oct 2007 11:28:00 GMT

Hier ein Beispielcode um einen SegFault unter Linux/Unix abzufangen. Mich hat es interessiert, ob soetwas möglich ist und ja es ist möglich:

#include <signal.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

void sig_handler(int sig)
{
     printf("Signal %i occured ... exiting\n", sig);
     exit(0);
}

int main()
{   
    struct sigaction act;
    memset(&act, 0, sizeof(act));
    act.sa_handler = sig_handler;       // define signal handler
    act.sa_flags   = SA_RESETHAND;      // reset to default after execution

    sigaction(SIGSEGV, &act, NULL);     // register signal handler

    printf("%s\n",0x001);               // produce segfault
    return 0;
}

Posted in , ,  | keine Kommentare | keine Trackbacks

UFRaw

Angelegt von Andreas Steinel Tue, 16 Oct 2007 17:50:00 GMT

Ich habe, verteilt auf die letzen Wochen gesehen, etwas an dem Tool UFRaw gearbeitet, mit dem man Kamerarohdaten lesen kann. Dabei wurde die Option Flexible Image Transport System [kurz: FITS] Dateien zu schreiben eingebaut. Bei diesem Dateiformat handelt es sich um ein von der NASA entwickeltes, universelles Dateiformat, mit dem u.A. auch astronomische Bilder gespeichert werden können.

Posted in ,  | keine Kommentare | keine Trackbacks

Die Neuerfindung des Rades

Angelegt von Andreas Steinel Sat, 30 Jun 2007 02:10:00 GMT

Heute wurde durch mich mal wieder ein Rad neu erfunden. Ich habe seit gestern mit dem “Roten Augen”-Effekt auseinandergesetzt und nach dem erfolgreichen Schreiben eines GIMP-Plugin’s festgestellt, daß es ab GIMP 2.4 ein solches Plugin bereits integriert ist.

Naja, so habe ich wenigstens mal die LAB-Konversion meiner kleinen GIMP-Bibliothek fertiggestellt.

Zuerst widmete ich mich einigen Farbräumen in GIMP zu, um die “Roten Augen” irgendwie intelligent zu beseitigen. Schlussendlich erledigte ich die Arbeit im LAB Farbraum, indem ich den Kanal A – hier ist die Röte zu finden – verändere. Dabei überschreibe ich die extremen Rotwerte mit einer Mittelung aller “nicht so roten Pixel” um die Pupille.

Um das Plugin anzuwenden einfach eine Region um die rote Pupille markieren und das Plugin starten. Dabei sollte man jedoch nicht Haut erwischen, da diese natürlich auch “entrötet” wird.

Das Plugin kann hier heruntergeladen werden.

Posted in , ,  | keine Kommentare

grafischer IRB

Angelegt von Andreas Steinel Tue, 08 May 2007 00:26:00 GMT

Wer schon immer eine grafische-interaktive-Ruby-Shell haben wollte – die auch noch Autovervollständigung kann – es ist sehr einfach zu erreichen: unter FreeBSD folgenden Port installieren

und folgenden Code in die Datei ~/.irbrc eintragen:

require 'rubygems'
require 'wirble'
Wirble.init
Wirble.colorize

Das Ergebnis sieht wie folgt aus:

Wie man sehen kann, funktioniert sogar das Highlighting von Ruby on Rails!

Posted in ,  | keine Kommentare

NL-Mean

Angelegt von Andreas Steinel Fri, 04 May 2007 22:37:00 GMT

In der letzten Zeit habe ich wieder mit dem NL-Mean-Algorithmus herumexperimentiert. Mittlerweile habe ich zwei Funktionierende Plugins für GIMP geschrieben – eines für Grauwert- und eines für Farbbilder.

Dabei habe ich es auch endlich geschafft, wirklich gutaussehende Resultate zu erzielen. Möglich macht dies eine Umrechnung des RGB-Farbbildes in das YCrCb-Farbmodel möglich. Die Resultate sehen wirklich sehr gut aus:

Wobei der Unterschied richtig deutlich wird, wenn man sich die Augenpartie genauer anschaut:

Das Farbrauschen hat beim unteren Bild stark nachgelassen. Wenn das Plugin bereit ist, das Licht der Öffentlichkeit zu ertragen, werde ich hier ausführlich darüber berichten.

Posted in ,  | keine Kommentare

QT4 und FreeBSD

Angelegt von Andreas Steinel Fri, 16 Mar 2007 10:46:00 GMT

Um etwas mit QT4 unter FreeBSD zu compilieren muss man zum einen die QT4-Pakete installieren und danach (analog zu QT3) folgende Umgebungsvariablen setzen:

export QTDIR=/usr/local/

export QMAKESPEC=/usr/local/share/qt4/mkspecs/freebsd-g++34

Man muß nur beachten, daß das qmake-Programm für QT4 nun qmake-qt4 heißt.

Posted in ,  | keine Kommentare

neues Projekt

Angelegt von Andreas Steinel Mon, 08 Jan 2007 20:37:00 GMT

Das erste, kleine Windows-Projekt ist online, welches ich für einige Bekannte programmiert habe:

Weitere Informationen gibt es hier.

Posted in , ,  | keine Kommentare