Ich verwende sowohl die JAI Media API als auch ImageMagick?
ImageMagick weist einige Skalierbarkeitsprobleme auf, und das JNI-basierte JMagick ist ebenfalls nicht attraktiv. JAI hat im Vergleich zu ImageMagick schlechte Ergebnisse bei der Größenänderung.
Kennt jemand exzellente Open Source- oder kommerzielle Tools, die natives Java sind und qualitativ hochwertige Ergebnisse liefern?
java
image-processing
image-manipulation
Daniel Honig
quelle
quelle
java image processing library
aber geschlossen ... wie gewohnt. Die Moderation geht heutzutage auf SO über Bord.Antworten:
Es gibt ImageJ , das sich rühmt, das zu sein
Es kann als Bibliothek in einer anderen Anwendung verwendet werden. Die Architektur ist nicht brillant, erledigt aber grundlegende Bildverarbeitungsaufgaben.
quelle
Ich weiß, dass diese Frage ziemlich alt ist, aber wenn neue Software herauskommt, hilft es, neue Links zu Projekten zu erhalten, die für Leute interessant sein könnten.
imgscalr ist eine reine Java-Bildgrößenänderungsbibliothek (und einfache Operationen wie Auffüllen, Zuschneiden, Drehen, Aufhellen / Dimmen usw.), die schmerzlich einfach zu verwenden ist - eine einzelne Klasse besteht aus einer Reihe einfacher Grafikoperationen, die alle als statische Methoden definiert sind Sie übergeben ein Bild und erhalten ein Ergebnis zurück.
Das grundlegendste Beispiel für die Verwendung der Bibliothek sieht folgendermaßen aus:
Eine typischere Verwendung zum Generieren von Bildminiaturen mit ein paar Qualitätsverbesserungen und dergleichen könnte folgendermaßen aussehen:
Alle Bildverarbeitungsvorgänge verwenden die unformatierte Java2D-Pipeline (die auf wichtigen Plattformen hardwarebeschleunigt ist) und verursachen keine Probleme beim Aufrufen über JNI wie Bibliothekskonflikte in Ihrem Code.
imgscalr wurde an vielen Stellen auch in großen Produktionen eingesetzt - die Einbeziehung der AsyncScalr-Klasse macht es zu einem perfekten Drop-In für jede serverseitige Bildverarbeitung.
Es gibt zahlreiche Verbesserungen an der Bildqualität, mit denen Sie zwischen Geschwindigkeit und Qualität wechseln können, wobei der höchste ULTRA_QUALITY-Modus ein skaliertes Ergebnis liefert, das besser aussieht als die Lancoz3-Implementierung von GIMP.
quelle
Eine weitere gute Alternative: Marvin
quelle
Ich bin kein Java-Typ, aber OpenCV ist großartig für meine Bedürfnisse. Ich bin mir nicht sicher, ob es zu dir passt. Ich denke, hier ist ein Java-Port: http://docs.opencv.org/2.4/doc/tutorials/introduction/desktop_java/java_dev_intro.html
quelle
Die Verarbeitung ist neu, aber sehr, sehr gut.
quelle
Versuchen Sie, Catalano Framework zu verwenden .
Schlüsselpunkte:
Das Catalano Framework ist ein Framework für wissenschaftliches Rechnen für Java und Android. Das Projekt begann als erste Portierung der vielen Funktionen der AForge.NET- und Accord.NET-Frameworks für .NET, wächst jedoch stetig mit erweiterten Funktionen, die jetzt von diesen Projekten gemeinsam genutzt werden.
Beispiel:
quelle
The best framework in Java is Catalano Framework
das klingt so, als würden Sie Ihr eigenes Produkt bewerben. Ihr Framework mag großartig sein, aber Sie sollten Ihre Zugehörigkeit dazu offenlegen, wie in den FAQs angegeben .Imo ist der beste Ansatz die Verwendung des GraphicsMagick-Bildverarbeitungssystems mit im4java als Befehlszeilenschnittstelle für Java.
GraphicsMagick bietet viele Vorteile, aber einen für alle:
quelle
http://im4java.sourceforge.net/ - Wenn Sie Linux verwenden, ist das Forken eines neuen Prozesses nicht teuer.
quelle
Für kommerzielle Tools möchten Sie möglicherweise Snowbound ausprobieren.
http://www.snowbound.com/
Meine Erfahrung mit ihnen ist etwas veraltet, aber ich fand, dass ihre Java Imaging-API viel einfacher zu verwenden als JAI und viel schneller ist.
Der Kundensupport und die Codebeispiele waren ebenfalls sehr gut.
quelle
RoboRealm Vision Software Liste erwähnt JHLabs und NeatVision unter vielen anderen Nicht-Java - basierten Bibliotheken.
quelle
Ich kann nicht sagen, dass es die "beste" Bibliothek ist, aber ich denke, Sie können dies versuchen: http://algart.net/java/AlgART/ Es ist eine Open-Source-Java-Bibliothek, die verallgemeinerte "intelligente" Arrays und Matrizen unterstützt Elemente verschiedener Typen (von 1-Bit- bis 64-Bit-Gleitkomma), einschließlich 2D-, 3D- und mehrdimensionaler Bildverarbeitung und anderer Algorithmen, die mit Arrays und Matrizen arbeiten. Leider besteht es momentan nicht aus genügend Demos und Beispielen, aber andererseits enthält es viele JavaDocs. Es lag mehrere Jahre lang auf der Basis kommerzieller Software (SIMAGIS), ist aber jetzt Open Source.
quelle