fix the code. 
		private void histogramImage() {
			// Создаем гистограмму исходного изображения
			int[] histogram = new int[256];
			for (int i = 0; i < image.getWidth(); i++) {
			for (int j = 0; j < image.getHeight(); j++) {
			int pixel = image.getRGB(i, j);
			int red = (pixel >> 16) & 0xff;
			int green = (pixel >> 8) & 0xff;
			int blue = pixel & 0xff;
			// Вычисляем яркость пикселя
			int brightness = (int) (0.2126 * red + 0.7152 * green + 0.0722 * blue);
			histogram[brightness]++;
			}
			}

			// Создаем гистограмму преобразованного изображения
			int[] transformedHistogram = new int[256];
			BufferedImage transformedImage = null;
			if (image != null) {
			transformedImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB);
			// Ваш код преобразования изображения должен быть здесь
			int[][] imageMatrix = convertToMatrix(image);
			//максимальная и минимальная яркости
			int maxValue = getMaxValue(imageMatrix);
			int minValue = getMinValue(imageMatrix);
			//разница между максимальной и минимальной яркостями
			float range = (float) (maxValue - minValue);
			for (int i = 0; i < transformedImage.getWidth(); i++) {
			for (int j = 0; j < transformedImage.getHeight(); j++) {
			int pixel = image.getRGB(i, j);
			int red = (pixel >> 16) & 0xff;
			int green = (pixel >> 8) & 0xff;
			int blue = pixel & 0xff;
			// Вычисляем яркость пикселя
			int brightness = (int) (0.2126 * red + 0.7152 * green + 0.0722 * blue);
			// Вычисляем преобразованную яркость пикселя
			float newBrightness = ((brightness - minValue) / range) * 255.0f;
			transformedImage.setRGB(i, j, new Color((int) newBrightness, (int) newBrightness, (int) newBrightness).getRGB());
			transformedHistogram[(int) newBrightness]++;
			}
			}
			}

			// Создаем окно для отображения гистограмм
			JFrame histogramFrame = new JFrame("Гистограмма");
			histogramFrame.setLayout(new GridLayout(1, 3, 5, 5)); //изменим количество колонок на 3

			// Создаем панель для первой гистограммы (исходного изображения)
			JPanel histogramPanel1 = new JPanel();
			histogramPanel1.setLayout(new BorderLayout());
			histogramPanel1.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Исходное изображение"));

			// Создаем компонент для рисования гистограммы исходного изображения
			JPanel histogramComponent1 = new JPanel() {
			@Override
			protected void paintComponent(Graphics g) {
			super.paintComponent(g);
			int max = Arrays.stream(histogram).max().getAsInt();
			for (int i = 0; i < 256; i++) {
			int height = (int) (300.0 * histogram[i] / max);
			g.fillRect(i, 300 - height, 1, height);
			}
			}
			};
			histogramComponent1.setPreferredSize(new Dimension(256, 300));

			histogramPanel1.add(histogramComponent1, BorderLayout.CENTER);

			// Создаем панель для второй гистограммы (преобразованного изображения)
			JPanel histogramPanel2 = new JPanel();
			histogramPanel2.setLayout(new BorderLayout());
			histogramPanel2.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Преобразованное изображение"));

			// Создаем компонент для рисования гистограммы преобразованного изображения
			JPanel histogramComponent2 = new JPanel() {
			@Override
			protected void paintComponent(Graphics g) {
			super.paintComponent(g);
			int max = Arrays.stream(transformedHistogram).max().getAsInt();
			for (int i = 0; i < 256; i++) {
			int height = (int) (300.0 * transformedHistogram[i] / max);
			g.fillRect(i, 300 - height, 1, height);
			}
			}
			};
			histogramComponent2.setPreferredSize(new Dimension(256, 300));

			histogramPanel2.add(histogramComponent2, BorderLayout.CENTER);

			//Создаем панель для третьей гистограммы (оригинал)
			JPanel histogramPanel3 = new JPanel();
			histogramPanel3.setLayout(new BorderLayout());
			histogramPanel3.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Оригинал"));

			// Создаем компонент для рисования гистограммы оригинала
			JPanel histogramComponent3 = new JPanel() {
			@Override
			protected void paintComponent(Graphics g) {
			super.paintComponent(g);
			int[] histogram = new int[256];
			for (int i = 0; i < image.getWidth(); i++) {
			for (int j = 0; j < image.getHeight(); j++) {
			int pixel = image.getRGB(i, j);
			int red = (pixel >> 16) & 0xff;
			int green = (pixel >> 8) & 0xff;
			int blue = pixel & 0xff;
			// Вычисляем яркость пикселя
			int brightness = (int) (0.2126 * red + 0.7152 * green + 0.0722 * blue);
			histogram[brightness]++;
			}
			}

			int max = Arrays.stream(histogram).max().getAsInt();
			for (int i = 0; i < 256; i++) {
			int height = (int) (300.0 * histogram[i] / max);
			g.fillRect(i, 300 - height, 1, height);
			}
			}
			};
			histogramComponent3.setPreferredSize(new Dimension(256, 300));

			histogramPanel3.add(histogramComponent3, BorderLayout.CENTER);

			histogramFrame.add(histogramPanel1);
			histogramFrame.add(histogramPanel2);
			histogramFrame.add(histogramPanel3); //добавляем панель оригинала
			histogramFrame.pack();
			histogramFrame.setLocationRelativeTo(null);
			histogramFrame.setVisible(true);
			}