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

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

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

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

Усиление контраста

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

Метод 1: equalizeHist (источник, назначение): этот метод находится в пакете Imgproc с параметром opencv.source — 8-битным одноканальным исходным изображением, а параметр назначения — целевым изображением.

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

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

Пример:

Java




// Java Program to Demonstrate Contrast Enhancement
// Using OpenCV Library
 
// Importing package module
package ocv;
 
// Importing required classes
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
 
// Main class
public class GFG {
 
    // Try block to check for exceptions
    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);
 
            // Reading image from local directory by
            // creating object of Mat class
            Mat source = Imgcodecs.imread(
                "E:\input.jpg",
                Imgcodecs.CV_LOAD_IMAGE_GRAYSCALE);
            Mat destination
                = new Mat(source.rows(), source.cols(),
                          source.type());
 
            // Applying histogram equalization
            Imgproc.equalizeHist(source, destination);
 
            // Writing output image to some other directory
            // in local system
            Imgcodecs.imwrite("E:\output.jpg",
                              destination);
 
            // Display message on console for successful
            // execution of program
            System.out.print(
                "Image Successfully Contrasted");
        }
 
        // Catch block to handle exceptions
        catch (Exception e) {
 
            // Print the exception on the console
            // using getMessage() method
            System.out.println("error: " + e.getMessage());
        }
    }
}


Вывод: на консоли

Image Successfully Contrasted

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