[java] 최고의 Java 이미지 처리 라이브러리 / 접근법은 무엇입니까? [닫은]

JAI 미디어 API와 ImageMagick을 모두 사용하고 있습니까?

ImageMagick에는 몇 가지 확장 성 문제가 있으며 JNI 기반 JMagick도 매력적이지 않습니다. JAI는 ImageMagick과 비교하여 크기 조정 작업을 수행 할 때 품질이 좋지 않습니다.

누구나 네이티브 자바이며 고품질의 결과를 제공하는 오픈 소스 또는 상업용 도구를 알고 있습니까?



답변

있다 ImageJ에 가 될 자랑,

세계에서 가장 빠른 순수 Java 이미지 처리 프로그램

다른 응용 프로그램에서 라이브러리로 사용할 수 있습니다. 아키텍처는 훌륭하지 않지만 기본적인 이미지 처리 작업을 수행합니다.


답변

나는이 질문이 꽤 오래되었다는 것을 알고 있지만 새로운 소프트웨어가 나오면 사람들에게 흥미로운 프로젝트에 대한 새로운 링크를 얻는 데 도움이됩니다.

imgscalr 는 순전히 자바 이미지 크기 조정 (및 패딩, 자르기, 회전, 밝게 / 조명 등과 같은 간단한 연산) 라이브러리로 사용하기가 매우 간단합니다. 단일 클래스는 정적 메소드 로 정의 된 간단한 그래픽 작업 세트로 구성됩니다. 당신은 이미지를 전달하고 결과를 다시 얻을.

라이브러리를 사용하는 가장 기본적인 예는 다음과 같습니다.

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

모든 이미지 처리 작업은 원시 Java2D 파이프 라인 (주 플랫폼에서 하드웨어 가속)을 사용하며 코드에서 라이브러리 경합과 같은 JNI를 통해 호출하는 데 어려움이 없습니다.

imgscalr은 대규모 생산에 상당히 많은 장소에 배포되었습니다. AsyncScalr 클래스를 포함하면 서버 측 이미지 처리에 완벽한 드롭 인이됩니다.

최고 품질의 ULTRA_QUALITY 모드를 사용하여 속도와 품질간에 균형을 맞추기 위해 사용할 수있는 이미지 품질에 대한 많은 조정이 있습니다.


답변

또 다른 좋은 대안 : Marvin


답변

나는 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 프레임 워크는 Java 및 Android 용 과학 컴퓨팅을위한 프레임 워크입니다. 이 프로젝트는 .NET 용 AForge.NET 및 Accord.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


답변

imo 최고의 접근 방식은 im4java 와 함께 GraphicsMagick 이미지 처리 시스템을 사용하는 것입니다 을 Java의 comand-line 인터페이스로 사용하는 것입니다.

GraphicsMagick에는 많은 장점이 있지만 모두를위한 하나의 장점이 있습니다.

  • GM은 세계 최대 사진 사이트 (예 : Flickr 및 Etsy)에서 수십억 개의 파일을 처리하는 데 사용됩니다.