Переделай код, чтобы то, что не входит в пилу было неизменным. // Гистограмма для sawtooth3Image()
					private void sawtooth3Image() {
					if (image != null) {
					BufferedImage combinedImage = deepCopy(image); // Создаем копию исходного изображения

					// Запрос значения порогов в цикле до тех пор, пока пользователь не введет правильные значения
					float t1 = 0, t2 = 0;
					boolean valid = false;
					while (!valid) {
					t1 = userInput("Введите значение порога 1: ", 0, 255);
					t2 = userInput("Введите значение порога 2: ", 0, 255);
					if (t2 > t1) {
					BufferedImage sawtoothContrastImage1 = ImageReader.sawtoothContrastUp(image, t1, t2); // Применяем контрастирование для верхней пилы
					BufferedImage sawtoothContrastImage2 = ImageReader.sawtoothContrastDown(image, t1, t2); // Применяем контрастирование для нижней пилы

					// Объединяем полученные изображения
					for (int y = 0; y < combinedImage.getHeight(); y++) {
					for (int x = 0; x < combinedImage.getWidth(); x++) {
					int rgb1 = sawtoothContrastImage1.getRGB(x, y);
					int rgb2 = sawtoothContrastImage2.getRGB(x, y);
					int red1 = (rgb1 >> 16) & 0xFF;
					int green1 = (rgb1 >> 8) & 0xFF;
					int blue1 = rgb1 & 0xFF;
					int red2 = (rgb2 >> 16) & 0xFF;
					int green2 = (rgb2 >> 8) & 0xFF;
					int blue2 = rgb2 & 0xFF;
					int red, green, blue;

					// В зависимости от положения пикселя на изображении выбираем соответствующий цвет
					if (y < image.getHeight() / 2) {
					red = red1;
					green = green1;
					blue = blue1;
					} else {
					red = red2;
					green = green2;
					blue = blue2;
					}

					combinedImage.setRGB(x, y, (red << 16) | (green << 8) | blue);
					}
					}

					valid = true;
					} else {
					JOptionPane.showMessageDialog(null, "Значение порога 2 должно быть больше порога 1");
					}
					}

					setImageIcon(combinedImage);
					saveImage(combinedImage);

					int[] originalHistogram = ImageReader.getImageHistogram(image);
					int[] sawtoothHistogram = ImageReader.getImageHistogram(combinedImage);

					JFrame histogramFrame = new JFrame("Гистограммы");
					histogramFrame.setLayout(new GridLayout(1, 2, 10, 10));

					JPanel originalHistogramPanel = ImageReader.createHistogramPanel(originalHistogram, "Гистограмма исходного изображения");

					JPanel sawtoothHistogramPanel = ImageReader.createHistogramPanel(sawtoothHistogram, "Гистограмма после контрастирования");

					histogramFrame.add(originalHistogramPanel);
					histogramFrame.add(sawtoothHistogramPanel);
					histogramFrame.pack();
					histogramFrame.setLocationRelativeTo(null);
					histogramFrame.setVisible(true);
					}
					}
