문제

나는 2D 필딩을하고, 그레이 스케일 버퍼 디임에 대한 요소 첨가에 의해 요소를 원한다.이를 위해이 작업을 완료하거나 Scrach에서 하나를 만들어야 할 기존 기능이 있습니까?

이 문제를 일으키기 위해 래스터를 매트릭스로 변환하는 일종의 매트릭스 클래스가 있습니까?

편집 : 여기에 일반적인 요지가 있습니다

    BufferedImageOp opX = new ConvolveOp(new Kernel(3,3, kernelX));
    BufferedImageOp opY = new ConvolveOp(new Kernel(3,3, kernelY));
    BufferedImage filtImageX = opX.filter(sourceImage, null);
    BufferedImage filtImageY = opY.filter(sourceImage, null);
    BufferedImage outputImage = addBufferedImages(filtImageX, filtImageY);
.

그레이 스케일 변환 :

public void toGrayscale() { 
     BufferedImageOp op = new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_GRAY), null); 
     sourceImage = op.filter(sourceImage, null); 
}
.

도움이 되었습니까?

해결책

저는 당신을 위해 그 일을하는 Java libs에 익숙하지 않습니다.

[i, j]에서 픽셀을 얻을 수 있습니다 : image.getRGB(i, j);

BufferedImage image = ...;
BufferedImage resultImage = ...

int rgb= image.getRGB(i, j);
resultImage.setRGB(i, j, rgb);
.

버퍼링 된 이미지를 바이트 배열로 변환 할 수도 있습니다 [ https://stackoverflow.com/a/7388025/1007845 ka>].

Java에서 이미지를 바이트 배열로 변환하는 방법은 무엇입니까? WritableRaster

를 얻으려면

편집 :

이 경우에 writableraster가 유용 할 수 있습니다 : http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/image/writableraster.html

WritableRaster raster = image.getRaster();

for(int h=0;h<height;h++) {
    for(int w=0;w<width;w++) {
        int colour = 127;
      raster.setSample(w,h,0,colour); 
   }
}
.

다른 팁

나는이 일을하는 직접적인 방법을 모른다.

그러나 나는 약간의 밑에있는 접근 방식을 제안 할 수있다. 첫째, 두 개의 이미지를 가져 와서 두 개의 밴드가있는 단일 이미지로 결합하십시오. 나는 이것을하는 방법에 대한 세부 사항에 대해 괴롭다. 나는 래스터 및 그런 다음 다른 두 이미지의 내용을 DataBuffer . 원본 이미지의 배열을 사용하는 2-Bank DataBuffer를 만들 수 있어야하지만 복사를 피할 수있는 은행으로서의 뱅크로서의 배열을 사용해야합니다.

2 대 밴드 이미지가 있으면 밴드를 합산하는 밴드콤 . 매트릭스로 합계를 표현해야하지만 어려움이 없어야합니다. 결과를 재구성하려면 [1.0, 1.0] 또는 [0.5, 0.5]라고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top