/** Creates a new instance of IDEJRManFramebufferImpl */ public IDEJRManFramebufferImpl(String name, BufferedImage image) { super("JRMan rendered: " + name, true, true, true, true); this.name = name; save.setEnabled(false); imagePanel.setImage(image); imagePanel.addToolbarAction(save); if (image.getType() == BufferedImage.TYPE_INT_ARGB || image.getType() == BufferedImage.TYPE_INT_ARGB_PRE) { imagePanel.setShowTransparencyPattern(true); } getRootPane().setDoubleBuffered(false); getContentPane().add(imagePanel); pack(); ImageResource images = ImageResource.getInstance(); // set the frame icon setFrameIcon(images.getJrMan()); // add this to the IDE desktop MainMenuEventHandlers.getInstance(null) .getIdeInstance() .getWorkspaceDesktop() .addInternalFrame(this, true); }
private void buildAccumulator(int r) { accImage = new BufferedImage(width, height, greyScale.getType()); Graphics2D g = accImage.createGraphics(); g.setColor(new Color(0, 0, 0, 0)); g.fillRect(0, 0, width, height); g.dispose(); int max = 0; double[] a = new double[1]; for (int y = 0; y < height; ++y) for (int x = 0; x < width; ++x) { a[0] = acc[y * width + x][r - rmin] & 0xFF; accImage.getRaster().setPixel(x, y, a); } ImageIcon icon2 = new ImageIcon(accImage); lbl2.setIcon(icon2); }
public void sobel() { sobel = new BufferedImage(width, height, filtered.getType()); Graphics2D g = sobel.createGraphics(); g.setColor(new Color(0, 0, 0, 0)); g.fillRect(0, 0, width, height); g.dispose(); int[] tmp = new int[1]; sX = new double[height][width]; sY = new double[height][width]; double maxX = 0; double maxY = 0; for (int y = 1; y < height - 1; ++y) for (int x = 1; x < width - 1; ++x) { double Xvalue = 0; double Yvalue = 0; for (int j = -1; j <= 1; ++j) for (int i = -1; i <= 1; ++i) { Xvalue += GX[1 + j][1 + i] * filtered.getRaster().getPixel(x + i, y + j, tmp)[0]; Yvalue += GY[1 + j][1 + i] * filtered.getRaster().getPixel(x + i, y + j, tmp)[0]; } if (Xvalue > maxX) maxX = Xvalue; if (Yvalue > maxY) maxY = Yvalue; sX[y][x] = Xvalue; sY[y][x] = Yvalue; } for (int y = 1; y < height - 1; ++y) for (int x = 1; x < width - 1; ++x) { double[] a = {(Math.abs((sX[y][x] / maxX * 255)) + Math.abs((sY[y][x] / maxY) * 255))}; // if (a[0] > 0) binary[y][x] = 1; // if (a[0] <= 0) binary[y][x] = 0; sobel.getRaster().setPixel(x, y, a); } ImageIcon icon2 = new ImageIcon(sobel); lbl2.setIcon(icon2); }