Jaka jest najlepsza biblioteka/podejście do przetwarzania obrazów java? [zamknięte]
Używam zarówno jai media API i ImageMagick?
ImageMagick ma pewne problemy ze skalowalnością, a jmagick oparty na JNI również nie jest atrakcyjny. JAI ma słabe wyniki jakości podczas wykonywania operacji zmiany rozmiaru w porównaniu do ImageMagick.
Czy ktoś zna jakieś doskonałe narzędzia open source lub komercyjne, które są natywne java i zapewniają wysoką jakość wyników?
11 answers
Jest ImageJ , która chwali się
Najszybszy na świecie czysty obraz Javy program przetwarzania
Może być używana jako Biblioteka w innej aplikacji. Jego architektura nie jest genialna, ale wykonuje podstawowe zadania przetwarzania obrazu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-05 23:58:09
Wiem, że to pytanie jest dość stare, ale gdy wychodzi nowe oprogramowanie, pomaga uzyskać nowe linki do projektów, które mogą być interesujące dla ludzi.
Imgscalr jest czystą zmianą rozmiaru obrazu w Javie (i prostymi opcjami, takimi jak padding, kadrowanie, obracanie, rozjaśnianie/ściemnianie itp.) biblioteka, która jest boleśnie 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:
BufferedImage thumbnail = Scalr.resize(image, 150);
I bardziej typowe użycie do generowania miniatur obrazów za pomocą kilku poprawek jakości i tym podobne może wyglądać tak:
import static org.imgscalr.Scalr.*;
public static BufferedImage createThumbnail(BufferedImage img) {
// Create quickly, then smooth and brighten it.
img = resize(img, Method.SPEED, 125, OP_ANTIALIAS, OP_BRIGHTER);
// Let's add a little border before we return result.
return pad(img, 4);
}
Wszystkie operacje przetwarzania obrazów używają surowego potoku Java2D (który jest przyspieszany sprzętowo na głównych platformach) i nie wprowadzą bólu wywołania w Twoim kodzie poprzez JNI like library contention.
Imgscalr został również wdrożony w dużych produkcjach w wielu miejsca - włączenie klasy AsyncScalr sprawia, że jest to idealne rozwiązanie dla każdego przetwarzania obrazu po stronie serwera.
Istnieje wiele poprawek do jakości obrazu, które można wykorzystać do wymiany między szybkością a jakością z najwyższym trybem ULTRA_QUALITY, zapewniając skalowany wynik, który wygląda lepiej niż implementacja GIMP ' a Lancoz3.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-15 10:07:16
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-25 13:48:27
Nie jestem facetem od Javy, ale OpenCV jest świetny dla moich potrzeb. Nie wiem, czy pasuje do ciebie. Tu jest port Java, chyba: http://docs.opencv.org/2.4/doc/tutorials/introduction/desktop_java/java_dev_intro.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-28 11:06:51
Przetwarzanie jest nowe, ale bardzo, bardzo dobre.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-07 01:49:56
Spróbuj użyć Catalano Framework .
Keypoints:
- Architektura jak AForge.NET/Accord.NET.
- Uruchom w obu środowiskach z tym samym kodem, pulpitem i Androidem.
- zawiera kilka filtrów równolegle.
- rozwój trwa pełną parą.
Przykład:
FastBitmap fb = new FastBitmap(bitmap);
Grayscale g = new Grayscale();
g.applyInPlace(fb);
Threshold t = new Threshold(120);
t.applyInPlace(fb);
bitmap = fb.toBitmap();
//Show the result
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-01 14:40:26
Imo najlepszym podejściem jest użycie GraphicsMagick Image Processing System z im4java jako interfejsu comand-line dla Javy.
Istnieje wiele zalet GraphicsMagick, ale jedna dla wszystkich:
- GM jest używany do przetwarzania miliardów files at the world ' s largest photo witryny (np. Flickr i Etsy).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-11 17:07:41
Http://im4java.sourceforge.net/ - Jeśli używasz Linuksa, nowy proces nie jest drogi.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-15 11:23:55
W przypadku narzędzi komercyjnych możesz spróbować Snowbound.
Moje doświadczenie z nimi jest nieco przestarzałe, ale okazało się, że ich Java Imaging API jest o wiele łatwiejsze w użyciu niż JAI i o wiele szybsze.
Ich Obsługa klienta i próbki kodu były również bardzo dobre.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-02 18:04:21
RoboRealm vision Software list wymienia JHLabs i NeatVision wśród wielu innych bibliotek nie opartych na Javie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-13 15:54:06
Nie mogę powiedzieć, że jest to" najlepsza " biblioteka, ale myślę, że możesz spróbować tego: http://algart.net/java/AlgART/ Jest to otwarta biblioteka Java, obsługująca uogólnione "inteligentne" tablice i macierze z elementami różnych typów (od 1 bitów do 64 bitów zmiennoprzecinkowych), w tym przetwarzanie obrazów 2D, 3D i wielowymiarowych oraz inne algorytmy, pracujące z tablicami i macierzami. Niestety w tej chwili Zawiera za mało demo i przykładów, ale z drugiej strony zawiera dużo Javadoc. Przez kilka lat leżał w bazie komercyjnego oprogramowania (SIMAGIS), ale teraz jest open-source.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-26 16:05:06