Обработка изображений в Java — повышение яркости

Опубликовано: 15 Сентября, 2022

Предпосылки:

  • Обработка изображений в Java — чтение и запись
  • Обработка изображений в Java — получение и установка пикселей
  • Обработка изображений в Java — преобразование цветного изображения в изображение в градациях серого
  • Обработка изображений в Java — преобразование цветного изображения в негативное изображение
  • Обработка изображений в Java — преобразование цветных изображений в красные, зеленые, синие
  • Обработка изображений в Java — преобразование цветного изображения в изображение сепии
  • Обработка изображений в Java — создание случайного пиксельного изображения
  • Обработка изображений в Java — создание зеркального изображения
  • Обработка изображений в Java — распознавание лиц
  • Обработка изображений в Java — водяные знаки на изображении
  • Обработка изображений в Java — изменение ориентации изображения
  • Обработка изображений в Java — повышение контрастности

Яркость изображения можно увеличить, умножив каждый пиксель изображения на альфа-значение, а затем добавив к нему бета-значение.

Повышение яркости изображения с помощью Java

Сначала нам нужно настроить OpenCV для Java, для этого мы рекомендуем использовать eclipse, так как его легко использовать и настраивать. Теперь давайте обсудим конкретный метод. Для повышения яркости используются следующие:

Метод 1: convertTo(destination, rtype, alpha, beta): он находится в пакете Mat OpenCV.

Синтаксис:

sourceImage.convertTo(destination, rtype, alpha, beta);

Параметры:

  • Изображение назначения
  • Желаемый тип выходной матрицы
  • Дополнительный масштабный коэффициент, умноженный на каждый пиксель исходного изображения.
  • К масштабированным значениям добавляется необязательное бета-значение.

Метод 2: imread(): он используется для чтения изображений как объектов Mat, которые визуализируются OpenCV.

Синтаксис:

Imgcodecs.imread(filename);

Параметры: Имя файла изображения. Если изображение находится в другом каталоге, необходимо указать полный путь к изображению.

Способ 2: imwrite(): Этот метод используется для записи объектов Mat в файл изображения.

Синтаксис:

Imgcodecs.imwrite(filename, mat_img); 

Параметры:

  • Имя файла изображения. Если изображение находится в другом каталоге, необходимо указать полный путь к изображению.
  • Результирующий матовый объект.

Реализация: мы будем иллюстрировать изображения вместе с выходными изображениями, чтобы продемонстрировать разницу.

Java




// Java Program to Enhance Brightness of An Image
// Using OpenCV Library
 
// Importing package module to this code fragment
package ocv;
// Importing required classes
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
 
// Main class
public class GFG {
 
    // Initializing variables for an image
    static int width;
    static int height;
    static double alpha = 1;
    static double beta = 50;
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Try block to check for exceptions
        try {
 
            // For proper execution of native libraries
            // Core.NATIVE_LIBRARY_NAME must be loaded
            // before calling any of the opencv methods
            System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
 
            // Getting input image by
            // creating object of Mat class from local
            // directory
            Mat source = Imgcodecs.imread(
                "E://input.jpg",
                Imgcodecs.CV_LOAD_IMAGE_COLOR);
 
            Mat destination
                = new Mat(source.rows(), source.cols(),
                          source.type());
 
            // Applying brightness enhancement
            source.convertTo(destination, -1, alpha, beta);
 
            // Output image
            Imgcodecs.imwrite("E://output.jpg",
                              destination);
        }
 
        // Catch block to handle exceptions
        catch (Exception e) {
 
            // Print the exception on console
            // using getMessage() method
            System.out.println("error: " + e.getMessage());
        }
    }
}

Выход:

Brightness Enhancement

Вариант использования 1: входное изображение

Alpha = 1, Beta = 50 

Выход 1:

Alpha = 2, Beta = 50 

Выход 2:

Alpha = 2, Beta = 25 

Выход 3:

Эта статья предоставлена Pratik Agarwal . Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью с помощью write.geeksforgeeks.org или отправить ее по адресу review-team@geeksforgeeks.org. Посмотрите, как ваша статья появится на главной странице GeeksforGeeks, и помогите другим гикам. Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсуждаемой выше.