Обработка изображений в Java — повышение яркости
Предпосылки:
- Обработка изображений в 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( 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 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, и помогите другим гикам. Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсуждаемой выше.