Question

J'utilise à la fois les API JAI Media et ImageMagick?

ImageMagick a quelques problèmes d’évolutivité et JMagick basé sur JNI n’est pas non plus attrayant. JAI a des résultats de qualité médiocre lors des opérations de redimensionnement par rapport à ImageMagick.

Est-ce que quelqu'un connaît d'excellents outils, qu'ils soient open source ou commerciaux, en java natif et offrant des résultats de haute qualité?

Était-ce utile?

La solution

Il existe ImageJ , qui se vante d'être le

  

image Java pure la plus rapide au monde   programme de traitement

Il peut être utilisé en tant que bibliothèque dans une autre application. Son architecture n’est pas brillante, mais elle effectue des tâches de traitement d’images de base.

Autres conseils

Je sais que cette question est assez ancienne, mais à mesure que de nouveaux logiciels apparaissent, il est utile d’obtenir de nouveaux liens vers des projets qui pourraient être intéressants pour les gens.

imgscalr est un redimensionnement d'image en Java pur (et des opérations simples comme le rembourrage, le recadrage, la rotation, la luminosité). / dimming, etc.) une bibliothèque extrêmement simple à utiliser: une classe unique consiste en un ensemble d'opérations graphiques simples, toutes définies comme des méthodes static permettant de transmettre une image et d'obtenir un résultat.

L'exemple le plus élémentaire d'utilisation de la bibliothèque ressemblerait à ceci:

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

Une utilisation plus typique consistant à générer des vignettes d’image à l’aide de quelques réglages de qualité et autres pourrait ressembler à ceci:

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

Toutes les opérations de traitement d'images utilisent le pipeline Java2D brut (accéléré par le matériel sur les principales plates-formes) et n'entraînent pas la difficulté d'appeler dans votre code via un JNI, comme une contention de bibliothèque.

imgscalr a également été déployé dans de nombreuses productions à de nombreux endroits - l’inclusion de la classe AsyncScalr en fait une installation idéale pour tout traitement d’images côté serveur.

Il existe de nombreux ajustements en matière de qualité d'image que vous pouvez utiliser pour faire un compromis entre vitesse et qualité avec le mode ULTRA_QUALITY le plus élevé, ce qui donne un résultat redimensionné plus esthétique que l'implémentation Lancoz3 de GIMP.

Une autre bonne alternative: Marvin

Je ne suis pas un gars de Java, mais OpenCV est idéal pour mes besoins. Je ne sais pas si ça vous va. Voici un port Java, je pense: http://docs.opencv.org/2.4/doc/ tutoriels / introduction / desktop_java / java_dev_intro.html

Le

traitement est nouveau mais très, très bon.

Essayez d'utiliser le Framework Catalano .

Points clés:

  • Architecture similaire à AForge.NET/Accord.NET.
  • Exécuter dans les deux environnements avec le même code, le même bureau et Android.
  • Contient plusieurs filtres en parallèle.
  • Le développement bat son plein.

Le framework Catalano est un framework d’informatique scientifique pour Java et Android. Le projet a commencé comme un premier portage des nombreuses fonctionnalités des frameworks AForge.NET et Accord.NET pour .NET, mais ne cesse de croître avec des fonctionnalités plus avancées qui sont maintenant partagées entre ces projets.

Exemple:

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

La meilleure approche consiste à utiliser le système de traitement d'images GraphicsMagick avec im4java en tant qu’interface de commande standard pour Java.

GraphicsMagick présente de nombreux avantages, mais un pour tous:

  • GM est utilisé pour traiter des milliards de fichiers à la plus grande photo du monde sites (par exemple, Flickr et Etsy).

http://im4java.sourceforge.net/ - si vous utilisez Linux, créez une nouvelle processus n'est pas cher.

Pour les outils commerciaux, essayez Snowbound.

http://www.snowbound.com/

Mon expérience avec eux est un peu dépassée, mais j’ai trouvé que leur API Java Imaging était beaucoup plus simple à utiliser que JAI et beaucoup plus rapide.

Le support client et les exemples de code étaient également très bons.

Le logiciel de vision RoboRealm liste mentionne JHLabs et NeatVision

Je ne peux pas dire que c’est le "meilleur" bibliothèque, mais je pense que vous pouvez essayer ceci: http://algart.net/java/AlgART/ Il s’agit d’une bibliothèque Java à code source ouvert, prenant en charge les fonctions "intelligentes" généralisées. des matrices et des matrices avec des éléments de différents types (de 1 à 64 bits à virgule flottante), y compris le traitement d'images 2D, 3D et multidimensionnelles et d'autres algorithmes, utilisant des matrices et des matrices. Malheureusement, à l’heure actuelle, il ne contient pas assez de démos et d’exemples, mais il contient en revanche beaucoup de JavaDocs. Il a été installé dans la base de logiciels commerciaux (SIMAGIS) pendant plusieurs années, mais il est maintenant open-source.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top