Java DJL NDArray ShowImage

son John
Jul 31, 2022

--

把 NDArray 的內容使用 BufferedImage 畫出來

public void showImage(NDArray img) throws IOException{  JFrame frame = new JFrame();  int ratio = 10;  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  int width = (int)img.getShape().get(0);  int height = (int)img.getShape().get(1);  frame.setSize(width * ratio + 14, height * ratio + 38);  BufferedImage bi = new BufferedImage(width * ratio, height * ratio, BufferedImage.TYPE_INT_RGB);

int val;
for(int i=0; i < height; i++) { for(int j=0; j < width; j++) { val = img.get(new NDIndex(String.format("%d, %d", i, j))).toType(DataType.INT32, true).toIntArray()[0]; for(int x=0; x < ratio; x++) { for(int y=0; y < ratio; y++) { bi.setRGB(j * ratio + y, i * ratio+ x, new Color(val, val, val).getRGB()); } } } } JPanel panel = new JPanel() { @Override public void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(bi, 0,0, null); } }; frame.add(panel); frame.setVisible(true);}

裡面的 ratio 是想要放大的倍數

--

--

No responses yet