Korzystam zarówno z interfejsu API JAI, jak i ImageMagick?
ImageMagick ma pewne problemy ze skalowalnością, a JMagick oparty na JNI również nie jest atrakcyjny. JAI ma słabą jakość wyników podczas operacji zmiany rozmiaru w porównaniu do ImageMagick.
Czy ktoś wie o doskonałych narzędziach open source lub komercyjnych, które są rodzimymi językami Java i zapewniają wysoką jakość wyników?
java
image-processing
image-manipulation
Daniel Honig
źródło
źródło
java image processing library
ale zamknięty ... jak zwykle. W dzisiejszych czasach moderacja zaczyna się przesadzać.Odpowiedzi:
Istnieje ImageJ , który może się poszczycić
Może być używany jako biblioteka w innej aplikacji. Jego architektura nie jest genialna, ale wykonuje podstawowe zadania przetwarzania obrazu.
źródło
Wiem, że to pytanie jest dość stare, ale kiedy pojawia się nowe oprogramowanie, pomaga uzyskać nowe linki do projektów, które mogą być interesujące dla ludzi.
imgscalr to biblioteka do skalowania obrazów w czystej Javie (i proste operacje, takie jak wypełnianie, kadrowanie, obracanie, rozjaśnianie / ściemnianie itp.) Biblioteka, która jest niezwykle prosta w użyciu - pojedyncza klasa składa się z zestawu prostych operacji graficznych zdefiniowanych jako statyczne metody, które przekazujesz obraz i odzyskujesz wynik.
Najbardziej podstawowy przykład użycia biblioteki wygląda następująco:
A bardziej typowe użycie do generowania miniatur obrazów przy użyciu kilku poprawek jakości i tym podobnych może wyglądać następująco:
Wszystkie operacje przetwarzania obrazu wykorzystują nieprzetworzony potok Java2D (który jest przyspieszany sprzętowo na głównych platformach) i nie wprowadzą bólu wywołania za pomocą JNI, podobnie jak rywalizacja o bibliotekę w kodzie.
Imgscalr został również wdrożony w dużych produkcjach w kilku miejscach - włączenie klasy AsyncScalr sprawia, że jest to idealne narzędzie do przetwarzania obrazu po stronie serwera.
Istnieje wiele drobnych poprawek jakości obrazu, których możesz użyć, aby dokonać kompromisu między szybkością a jakością, dzięki najwyższemu trybowi ULTRA_QUALITY, który zapewnia skalowany wynik, który wygląda lepiej niż implementacja Lancoz3 GIMP.
źródło
Kolejna dobra alternatywa: Marvin
źródło
Nie jestem facetem od Java, ale OpenCV jest świetny na moje potrzeby. Nie jestem pewien, czy pasuje do twojego. Oto port Java, jak sądzę: http://docs.opencv.org/2.4/doc/tutorials/introduction/desktop_java/java_dev_intro.html
źródło
Przetwarzanie jest nowe, ale bardzo, bardzo dobre.
źródło
Spróbuj użyć Catalano Framework .
Kluczowe punkty:
Catalano Framework to framework do obliczeń naukowych dla Java i Androida. Projekt rozpoczął się jako początkowy port wielu funkcji frameworków AForge.NET i Accord.NET dla platformy .NET, ale stale się rozwija wraz z bardziej zaawansowanymi funkcjami, które są obecnie udostępniane między tymi projektami.
Przykład:
źródło
The best framework in Java is Catalano Framework
brzmi to tak, jakbyś reklamował swój własny produkt. Twoje ramy mogą być świetne, ale powinieneś ujawnić swoją przynależność do nich, jak podano w FAQ .imo najlepszym podejściem jest użycie GraphicsMagick Image Processing System z im4java jako interfejsu linii poleceń dla Java.
GraphicsMagick ma wiele zalet, ale jedna dla wszystkich:
źródło
http://im4java.sourceforge.net/ - jeśli używasz Linuksa, rozwidlenie nowego procesu nie jest drogie.
źródło
W przypadku narzędzi komercyjnych możesz wypróbować Snowbound.
http://www.snowbound.com/
Moje doświadczenia z nimi są nieco przestarzałe, ale zauważyłem, że ich Java Imaging API jest o wiele łatwiejszy w obsłudze niż JAI i znacznie szybszy.
Ich obsługa klienta i próbki kodu również były bardzo dobre.
źródło
RoboRealm oprogramowanie wizja lista wymienia JHLabs i NeatVision wśród wielu innych bibliotek nie opartych na Java.
źródło
Nie mogę powiedzieć, że jest to „najlepsza” biblioteka, ale myślę, że możesz spróbować: http://algart.net/java/AlgART/ Jest to biblioteka Java typu open source, obsługująca uogólnione „inteligentne” tablice i macierze elementy różnych typów (od 1 do 64-bitowych liczb zmiennoprzecinkowych), w tym przetwarzanie obrazów 2D, 3D i wielowymiarowe oraz inne algorytmy, pracujące z tablicami i macierzami. Niestety w tej chwili nie zawiera wystarczającej liczby wersji demo i przykładów, ale z drugiej strony zawiera dużo JavaDoców. Przez kilka lat leżał w bazie oprogramowania komercyjnego (SIMAGIS), ale teraz jest oprogramowaniem typu open source.
źródło