Konvertieren Sie ein 2D-Array von Doubles in ein BufferedImage

Ich habe ein zweidimensionales Array von Doppelwerten, das die gefilterten Werte eines Bildes darstellt. Ich möchte dieses Array wieder in ein konvertierenBufferedImage. Wie ist es möglich einedouble[][] zu einemBufferedImage?

BufferedImage b = new BufferedImage(arr.length, arr[0].length, 3); 
    Graphics c = b.getGraphics();


    PrintWriter writer = new PrintWriter("the-file-name.txt", "UTF-8");
    for(int i=0; i< arr.length; i++){
        for (int j=0; j<arr[0].length; j++){
             c.drawString(String.valueOf(arr[i][j]), i, j);
            writer.print(arr[i][j]+" \t");
        }
        writer.println();
    }

    ImageIO.write(b, "jpg", new File("CustomImage.jpg"));
    System.out.println("end");

Wenn ich den Dateinamen.txt in matlab mit imshow zeichne, kann ich mein gefiltertes Bild sehen. Die CustomImage.jpg enthält jedoch nur eine Farbe. Irgendeine Idee warum?

Das Ergebnis mit c.drawString (String.valueOf (arr [i] [j]), i, j):

c.drawString (String.valueOf (arr [i] [j]), 0+ (i * 10), 0+ (j * 10)):

Matlab plor das Doppelte des Arrays zuerst das Doppelte des Arrays und dann das erste grau skalierte Bild:

Antworten auf die Frage(2)

Ihre Antwort auf die Frage