какова лучшая java библиотека / подход к обработке изображений?

<p>я использую как jai media apis, так и imagemagick?</p><p>imagemagick имеет некоторые проблемы с масштабируемостью, и jmagick на основе jni также не привлекателен. jai имеет плохое качество результатов при выполнении операций изменения размера по сравнению с imagemagick.</p><p>кто-нибудь знает какие-либо отличные инструменты с открытым исходным кодом или коммерческие, которые являются родными java и обеспечивают высокое качество результатов?</p>

<p>там <a href="http://rsbweb.nih.gov/ij/">imagej</a> , который может похвастаться</p><blockquote> <p>самая быстрая в мире чистая java программа для обработки изображений</p> </blockquote><p>его можно использовать как библиотеку в другом приложении. его архитектура не блестящая, но она выполняет основные задачи по обработке изображений.</p>

<p>я знаю, что этот вопрос довольно старый, но когда выходит новое программное обеспечение, оно помогает получить новые ссылки на проекты, которые могут быть интересны людям.</p><p> <a href="https://github.com/thebuzzmedia/imgscalr">imgscalr</a> - библиотека изменения размера изображения на чистом java (и простые операции, такие как заполнение, обрезка, вращение, осветление/затемнение и т. д.), которая чрезвычайно проста в использовании - один класс состоит из набора простой графики все операции определены как <em> статические </em> методы, которые вы передаете изображение и возвращаете результат.</p><p>самый простой пример использования библиотеки будет выглядеть так:</p><pre><code>bufferedimage thumbnail = scalr.resize(image, 150); </code></pre><p>а более типичное использование для создания миниатюр изображений с использованием нескольких качественных настроек и т. п. может выглядеть следующим образом:</p><pre><code>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); } </code></pre><p>все операции по обработке изображений используют сырой конвейер java2d (аппаратно ускоренный на основных платформах) и не создадут проблемы вызова через jni, как конфликты библиотек в вашем коде.</p><p>imgscalr также был развернут в крупномасштабных производствах в нескольких местах - включение класса asyncscalr делает его идеальным дополнением для любой обработки изображений на стороне сервера.</p><p>существует множество настроек качества изображения, которые вы можете использовать для достижения компромисса между скоростью и качеством с наивысшим режимом ultra\_quality, обеспечивающим масштабированный результат, который выглядит лучше, чем реализация gimp lancoz3.</p>

<p>еще одна хорошая альтернатива: <a href="http://marvinproject.sourceforge.net/en/index.html">марвин</a> </p>

<p>я не java парень, но opencv отлично подходит для моих нужд. не уверен, подходит ли он тебе. вот порт java, я думаю: <a href="http://docs.opencv.org/2.4/doc/tutorials/introduction/desktop\_java/java\_dev\_intro.html">http://docs.opencv.org/2.4/doc/tutorials/introduction/desktop\_java/java\_dev\_intro.html</a> </p>

<p> <a href="http://processing.org/">обработка</a> является новым, но очень, очень хорошим.</p>

<p>попробуйте использовать <a href="https://code.google.com/p/catalano-framework/">catalano framework</a> .</p><p>ключевые точки:</p><ul> <li>архитектура как aforge.net/accord.net.</li> <li>запустите в обеих средах с одинаковым кодом, на рабочем столе и android.</li> <li>содержит несколько фильтров параллельно.</li> <li>разработка идет на полную steam.</li> </ul><p>платформа catalano framework - это среда для научных вычислений для java и android. проект начался как начальный порт для многих функций инфраструктур aforge.net и accord.net для .net, но неуклонно растет с появлением более продвинутых функций, которые теперь используются этими проектами.</p><p>пример:</p><pre><code>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 </code></pre>

<p>imo лучший подход - использовать <a href="http://www.graphicsmagick.org/">graphicsmagick image processing system</a> с <a href="http://im4java.sourceforge.net/">im4java</a> в качестве интерфейса командной строки для java.</p><p>есть много преимуществ graphicsmagick, но один для всех:</p><ul> <li>gm используется для обработки миллиардов файлов на крупнейших фото-сайтах мира (например, flickr и etsy).</li> </ul>

<p> <a href="http://im4java.sourceforge.net/">http://im4java.sourceforge.net/</a> - если вы используете linux, форкирование нового процесса не требует больших затрат.</p>

<p>roborealm vision software <a href="http://www.roborealm.com/links/vision\_software.php">список</a> упоминает <a href="http://www.jhlabs.com/ie/index.html">jhlabs</a> и <a href="http://www.neatvision.com/">neatvision</a> среди множества других библиотек, не основанных на java.</p>

<p>для коммерческих инструментов, вы можете попробовать snowbound.</p><p> <a href="http://www.snowbound.com/">http://www.snowbound.com/</a> </p><p>мой опыт работы с ними несколько устарел, но я обнаружил, что их java api обработки изображений намного проще в использовании, чем jai, и намного быстрее.</p><p>их поддержка клиентов и примеры кода тоже были очень хорошими.</p>

<p>я не могу сказать, что это "лучшая" библиотека, но я думаю, что вы можете попробовать это: <a href="http://algart.net/java/algart/">http://algart.net/java/algart/</a> это открытый исходный код java библиотека, поддерживающая обобщенные "умные" массивы и матрицы с элементами разного типа (от 1-битной до 64-битной с плавающей запятой), включая обработку 2d-, 3d- и многомерных изображений и другие алгоритмы, работающие с массивами и матрицами. к сожалению, в данный момент в нем недостаточно демонстраций и примеров, но, с другой стороны, в нем много javadocs. он лежал в основе коммерческого программного обеспечения (simagis) в течение нескольких лет, но теперь он с открытым исходным кодом.</p>