Estou usando as APIs de mídia JAI e o ImageMagick?
O ImageMagick tem alguns problemas de escalabilidade e o JMagick baseado em JNI também não é atraente. O JAI apresenta resultados de baixa qualidade ao realizar operações de redimensionamento em comparação com o ImageMagick.
Alguém conhece alguma ferramenta excelente, de código aberto ou comercial, que é Java nativo e oferece resultados de alta qualidade?
java
image-processing
image-manipulation
Daniel Honig
fonte
fonte
java image processing library
mas fechado ... como de costume. A moderação está exagerando no SO atualmente.Respostas:
Há ImageJ , que se orgulha de ser o
Pode ser usado como uma biblioteca em outro aplicativo. Sua arquitetura não é brilhante, mas executa tarefas básicas de processamento de imagem.
fonte
Sei que essa pergunta é bastante antiga, mas à medida que o novo software é lançado, ajuda a obter novos links para projetos que podem ser interessantes para as pessoas.
O imgscalr é o redimensionamento de imagem em Java puro (e operações simples, como preenchimento, corte, rotação, clareamento / escurecimento etc.), que é extremamente simples de usar - uma única classe consiste em um conjunto de operações gráficas simples, todas definidas como métodos estáticos que você passa uma imagem e obtém um resultado.
O exemplo mais básico de uso da biblioteca seria assim:
E um uso mais típico para gerar miniaturas de imagens usando alguns ajustes de qualidade e similares pode ser assim:
Todas as operações de processamento de imagem usam o pipeline Java2D bruto (que é acelerado por hardware nas principais plataformas) e não apresentará a dor de chamar via JNI como contenção de biblioteca em seu código.
O imgscalr também foi implantado em produções em larga escala em muitos lugares - a inclusão da classe AsyncScalr o torna um componente perfeito para qualquer processamento de imagem no servidor.
Existem vários ajustes na qualidade da imagem que você pode usar para trocar entre velocidade e qualidade com o modo ULTRA_QUALITY mais alto, fornecendo um resultado em escala que parece melhor do que a implementação Lancoz3 do GIMP.
fonte
Outra boa alternativa: Marvin
fonte
Eu não sou um cara de Java, mas o OpenCV é ótimo para minhas necessidades. Não tenho certeza se ele se encaixa no seu. Aqui está uma porta Java, eu acho: http://docs.opencv.org/2.4/doc/tutorials/introduction/desktop_java/java_dev_intro.html
fonte
O processamento é novo, mas muito, muito bom.
fonte
Tente usar o Catalano Framework .
Pontos chave:
O Catalano Framework é um framework para computação científica para Java e Android. O projeto começou como uma porta inicial dos muitos recursos das estruturas AForge.NET e Accord.NET para .NET, mas está crescendo constantemente com recursos mais avançados que agora estão sendo compartilhados entre esses projetos.
Exemplo:
fonte
The best framework in Java is Catalano Framework
parece que você está anunciando seu próprio produto. Sua estrutura pode ser ótima, mas você deve divulgar sua afiliação a ela, conforme indicado nas Perguntas frequentes .A melhor abordagem é usar o GraphicsMagick Image Processing System com o im4java como uma interface de linha de comando para Java.
Existem muitas vantagens do GraphicsMagick, mas uma por todos:
fonte
http://im4java.sourceforge.net/ - se você estiver executando o linux bifurcação, um novo processo não é caro.
fonte
Para ferramentas comerciais, convém experimentar o Snowbound.
http://www.snowbound.com/
Minha experiência com eles é um pouco datada, mas achei a API do Java Imaging muito mais fácil de usar que o JAI e muito mais rápida.
O suporte ao cliente e os exemplos de código também foram muito bons.
fonte
A lista de softwares de visão RoboRealm menciona JHLabs e NeatVision entre muitas outras bibliotecas não baseadas em Java.
fonte
Não posso dizer que é a melhor "biblioteca", mas acho que você pode tentar o seguinte: http://algart.net/java/AlgART/ É uma biblioteca Java de código aberto, suportando matrizes e matrizes "inteligentes" generalizadas com elementos de diferentes tipos (de 1 a 64 bits de ponto flutuante), incluindo processamento de imagem 2D, 3D e multidimensional e outros algoritmos, trabalhando com matrizes e matrizes. Infelizmente, no momento, não há demo e exemplos suficientes, mas, por outro lado, contém muitos JavaDocs. Ele ficou na base do software comercial (SIMAGIS) durante vários anos, mas agora é de código aberto.
fonte