У меня нет глубокого понимания содержания обработки изображений Java, поэтому я прощу вас за ваши простые слова.
Java реализует регулировку уровня цвета, то есть регулирует компонент RGB изображения, а также может регулировать яркость изображения.
Тестовый код
public static void main (string [] args) {// преобразование между файлом и bufferemage bufferemage bi = file2img ("test.jpg"); // Читать изображение BufferedImage bii = img_color_gradation (bi, 100,0,0); img2file (bii, "jpg", "test1.jpg");Код регулировки уровня цвета
// Регулируйте уровень цвета изображения, отрегулируйте компонент RGB Public Static BufferedImage IMG_COLOR_GRAGATION (BufferedImage IMGSRC, Int R, Int G, Int B) {try {// Создать изображение без прозрачности BufferedImage Back = new BuffereMage (imgsrc.getWidth (), imgsrc.getheuight (), bufturemage. int width = imgsrc.getwidth (); int height = imgsrc.getheight (); for (int i = 0; i <height; i ++) {for (int j = 0; j <ширина; j ++) {int pixel = imgsrc.getrgb (j, i); Цвет цвета = новый цвет (пиксель); int red = color.getRed ()+r; if (Red> 255) Red = 255; if (red <0) red = 0; int green = color.getgreen ()+g; if (зеленый> 255) зеленый = 255; if (green <0) green = 0; int blue = color.getblue ()+b; if (синий> 255) синий = 255; if (синий <0) синий = 0; цвет = новый цвет (красный, зеленый, синий); int x = color.getrgb (); back.setrgb (j, i, x); }} вернуться назад; } catch (Exception e) {e.printstackTrace (); вернуть ноль; }}Чтение изображений и функции хранения
// Читать изображение public static bufferedimage file2img (string imgpath) {try {bufferemage bufferedimage = imageio.read (new File (imgpath)); return BufferedImage; } catch (Exception e) {e.printstackTrace (); вернуть ноль; }} // Сохранить изображение, экстент находится в формате, "jpg", "png" и т. Д. Общественный статический void img2file (bufferedimage img, string extent, string newfile) {try {imageio.write (img, extent, new File (newfile)); } catch (Exception e) {e.printstackTrace (); }}делиться:
Ниже приведена формула расчета яркости и контраста
(RGB представляет значение цветового компонента исходного изображения, значение, которое не обрабатывается таблицей NRGB, Mbrightness представляет собой скорректированное значение яркости, Mcontrast представляет скорректированное значение контраста, а AVG представляет среднее значение всего Pixel) Pixel)
Яркость: nrgb = rgb+mbrightness
Контраст: nrgb = (rgb-avg)*(1-процентный%)+AVG процентный процентный диапазон значений составляет (-1 ~ 1) 0-исходное значение. Формула контрастности также очень хороша. Расширить это.
nrgb = rgb-rgb*процент%-avg+avg*процент%+avg
nrgb = rgb-rgb*процент%+avg*процент%
Для всей матрицы изображения яркость должна быть обеспечена, что алгебраическая сумма всей матрицы не изменилась.
И avg = (rgb1+rgb2+... rgbn)/n (1)
(NRGB1+NRGB2+... NRGBN) = (RGB1+RGB2+... RGBN)+N*AVG*процент%-(RGB1+RGB2+... RGBN)*процент% (2)
Просто заменить формулу (1) в формулу (2)
Суммировать
Приведенное выше содержимое этой статьи о примерах корректировки уровня цвета и примеров корректировки яркости изображения Java, я надеюсь, что это будет полезно для всех. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это.