Pergunta

Eu estou usando ambas as APIs e mídia JAI ImageMagick?

ImageMagick tem alguns problemas de escalabilidade eo JMagick baseado JNI não é atraente tanto. JAI tem resultados de má qualidade ao fazer operações de redimensionamento em comparação com ImageMagick.

Alguém sabe de quaisquer excelentes ferramentas de código aberto ou comerciais que são Java Native e entregar resultados de alta qualidade?

Foi útil?

Solução

ImageJ , que se orgulha de ser o

imagem Java

mais rápido do mundo puro programa de processamento

Ele pode ser usado como uma biblioteca em outro aplicativo. É de arquitetura não é brilhante, mas ele faz tarefas básicas de processamento de imagem.

Outras dicas

Eu sei que esta questão é bastante antiga, mas como um novo software sai ele ajuda a obter alguns novos links para projetos que podem ser interessantes para a gente.

imgscalr é puro-Java imagem redimensionamento (e ops simples, como preenchimento, recorte, rotação, Brighten / escurecimento, etc.) biblioteca que é dolorosamente simples de usar - uma única classe consiste de um conjunto de operações de gráficos simples todos definidos como estática métodos que você passar uma imagem e voltar resultado

O exemplo mais básico de uso da biblioteca ficaria assim:

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

E um uso mais comum para gerar miniaturas de imagens usando alguns ajustes de qualidade e afins pode ter esta aparência:

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

Todas as operações de processamento de imagem usar o pipeline Java2D cru (que é acelerado por hardware nas principais plataformas) e não irá introduzir a dor de chamar via JNI como contenção biblioteca em seu código.

imgscalr também foi implantado em produções de grande escala em alguns lugares -. A inclusão da classe AsyncScalr torna um drop-in perfeito para qualquer processamento de imagem do lado do servidor

Existem inúmeros ajustes para de qualidade de imagem que você pode usar para o comércio off entre velocidade e qualidade com o modo ULTRA_QUALITY maior fornecendo um resultado em escala que parece melhor do que a implementação Lancoz3 do GIMP.

Outra boa alternativa: Marvin

Eu não sou um cara de Java, mas OpenCV é grande para minhas necessidades. Não tenho certeza se ele se encaixa o seu. Aqui está uma porta de Java, eu penso: http://docs.opencv.org/2.4/doc/ tutoriais / introdução / desktop_java / java_dev_intro.html

Processamento é novo, mas muito, muito bom.

Tente usar Catalano Framework .

Keypoints:

  • Architecture como AForge.NET/Accord.NET.
  • Executar nos dois ambientes com o mesmo código, desktop e Android.
  • contém vários filtros em paralelo.
  • Desenvolvimento está em pleno vapor.

O Quadro Catalano é uma estrutura para computação científica para Java e Android. O projeto começou como uma porta inicial das muitas características do AForge.NET e Accord.NET estruturas para .NET, mas está em constante crescimento com recursos mais avançados que agora estão sendo compartilhados entre esses projectos.

Exemplo:

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

imo a melhor abordagem é usar GraphicsMagick Imagem Sistema de Processamento de com im4java como uma interface de linha de comand para Java.

Há uma série de vantagens de GraphicsMagick, mas um por todos:

  • GM é usado para milhares de milhões de processos de arquivos na maior foto do mundo sites (por exemplo, Flickr e Etsy).

http://im4java.sourceforge.net/ - se você estiver executando linux bifurcação um novo processo não é caro.

Para ferramentas comerciais, você pode querer tentar Snowbound.

http://www.snowbound.com/

A minha experiência com eles é um pouco datada, mas achei a sua API Java Imaging para ser muito mais fácil de usar do que JAI e muito mais rápido.

seu apoio e código amostras do cliente foram muito bons também.

software de visão RoboRealm lista menciona JHLabs e NeatVision , entre muitas outras bibliotecas não baseados em Java.

Eu não posso dizer que é o "melhor" biblioteca, mas eu acho que você pode tentar este: http://algart.net/java/AlgART/ É uma biblioteca Java-fonte aberto, apoiando generalizadas matrizes e matrizes "inteligentes" com elementos de tipos diferentes (a partir de um pouco de ponto flutuante de 64-bits), incluindo 2D-, 3D- e processamento de imagem multidimensional e outros algoritmos, trabalhando com arrays e matrizes. Infelizmente agora não consiste suficiente demonstração e exemplos, mas, por outro lado, ele contém uma grande quantidade de JavaDocs. Encontrava-se na base do software comercial (SIMAGIS) durante vários anos, mas agora é open-source.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top