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



Я использую как Jai media API, так и ImageMagick?



ImageMagick имеет некоторые проблемы масштабируемости и JNI на основе JMagick не является привлекательным либо.
JAI имеет низкое качество результатов при выполнении операций изменения размера по сравнению с ImageMagick.



кто-нибудь знает о каких-либо отличных инструментах с открытым исходным кодом или коммерческих, которые являются родными java и обеспечивают высокое качество результатов?

874   11  

11 ответов:

здесь ImageJ, которая расположена

самый быстрый в мире чистый образ Java программа обработки

Он может быть использован в качестве библиотеки в другое приложение. Это архитектура не блестящая, но она выполняет основные задачи обработки изображений.

Я знаю этот вопрос довольно старый, но как новый софт выходит это поможет получить новые ссылки на проекты, которые могут быть интересны для людей.

imgscalr является чистым-Java изменение размера изображения (и простые операции, такие как заполнение, обрезка, вращение, яркость/затемнение и т. д.) библиотека, которая до боли проста в использовании - один класс состоит из набора простых графических операций, определяемых как статический методы, которые вы передаете изображение и вернуться результат.

самый простой пример использования библиотеки будет выглядеть так:

BufferedImage thumbnail = Scalr.resize(image, 150);

и более типичное использование для создания миниатюр изображений с использованием нескольких настроек качества и тому подобное может выглядеть следующим образом:

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);
}

все операции обработки изображений используют конвейер raw Java2D (который аппаратно ускорен на основных платформах) и не будет вводить боль вызова через JNI, как библиотечный конфликт в вашем коде.

imgscalr также имеет был развернут в крупномасштабных производствах в довольно многих местах-включение класса AsyncScalr делает его идеальным падением для любой обработки изображений на стороне сервера.

есть множество настроек качества изображения, которые вы можете использовать для компромисса между скоростью и качеством с самым высоким режимом ULTRA_QUALITY, обеспечивающим масштабированный результат, который выглядит лучше, чем реализация Lancoz3 GIMP.

еще один хороший вариант: Марвин

Я не Java парень, но OpenCV отлично подходит для моих нужд. Не уверен, подходит ли он вам. Вот Java-порт, я думаю: http://docs.opencv.org/2.4/doc/tutorials/introduction/desktop_java/java_dev_intro.html

обработка новый, но очень, очень хорошо.

попробуйте использовать Catalano Framework.

расположение:

  • архитектура нравится AForge.NET/Accord.NET.
  • запуск в обеих средах с одним и тем же кодом, рабочего стола и Android.
  • содержит несколько фильтров параллельно.
  • разработка идет полным ходом.

Catalano Framework-это платформа для научных вычислений для Java и Android. Проект начался как начальный порт многие особенности AForge.NET и Accord.NET платформы для .NET, но неуклонно растет с более продвинутыми функциями, которые в настоящее время совместно используются между этими проектами.

пример:

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

ИМО, лучший подход заключается в использовании GraphicsMagick Система Обработки Изображений С im4java как командный интерфейс для Java.

есть много преимуществ GraphicsMagick, но один для всех:

  • GM используется для обработки миллиардов файлы на самой большой в мире фотографии сайты (например, Flickr и Etsy).

http://im4java.sourceforge.net/ - Если вы используете linux разветвление новый процесс не дорого.

для коммерческих инструментов, вы, возможно, захотите попробовать заметало.

http://www.snowbound.com/

мой опыт работы с ними несколько устарел, но я обнаружил, что их JAVA Imaging API намного проще в использовании, чем JAI и намного быстрее.

поддержка и примеры кода были очень хорошие.

программное обеспечение RoboRealm vision list упоминает JHLabs и NeatVision среди множества других библиотек, не основанных на Java.

Я не могу сказать, что это "лучшая библиотека", но я думаю, что вы можете попробовать это: http://algart.net/java/AlgART/ Это библиотека Java с открытым исходным кодом, поддерживающая обобщенные" умные " массивы и матрицы с элементами различных типов (от 1 бит до 64 бит с плавающей запятой), включая 2D -, 3D-и многомерную обработку изображений и другие алгоритмы, работающие с массивами и матрицами. К сожалению сейчас не достаточно демо и примеры, но, с другой стороны, это содержится много документации. Она лежит в основе коммерческого программного обеспечения (SIMAGIS) в течение нескольких лет, но теперь он является открытым исходным кодом.

Comments

    Ничего не найдено.