Java DIP - повышение яркости изображения
В этой главе мы увеличиваем яркость изображения, умножая каждый пиксель изображения на значение альфа и добавляя к нему другое значение бета.
Мы OpenCV функция convertToкоторый выполняет вышеуказанную операцию автоматически. Его можно найти вMatпакет. Его синтаксис приведен ниже -
int alpha = 2;
int beta = 50;
sourceImage.convertTo(destination, rtype , alpha, beta);
Параметры описаны ниже -
Sr. No. | Параметр и описание |
---|---|
1 | destination Это изображение назначения. |
2 | rtype Это желаемый тип выходной матрицы или, скорее, глубина, поскольку количество каналов такое же, как и на входе. если rtype отрицательный, выходная матрица будет иметь тот же тип, что и входная. |
3 | alpha Необязательный масштабный коэффициент. |
4 | beta Это необязательная дельта, добавляемая к масштабированным значениям. |
Помимо метода convertTo, существуют другие методы, предоставляемые классом Mat. Они кратко описаны -
Sr. No. | Метод и описание |
---|---|
1 | adjustROI(int dtop, int dbottom, int dleft, int dright) Он регулирует размер и положение подматрицы в родительской матрице. |
2 | copyTo(Mat m) Копирует матрицу в другую. |
3 | diag() Он извлекает диагональ из матрицы или создает диагональную матрицу. |
4 | dot(Mat m) Он вычисляет скалярное произведение двух векторов. |
5 | reshape(int cn) Он изменяет форму и / или количество каналов 2D-матрицы без копирования данных. |
6 | submat(Range rowRange, Range colRange) Он извлекает прямоугольную подматрицу. |
пример
В следующем примере демонстрируется использование класса Mat для повышения яркости изображения.
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.Highgui;
public class Main {
static int width;
static int height;
static double alpha = 2;
static double beta = 50;
public static void main( String[] args ) {
try{
System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
Mat source = Highgui.imread("digital_image_processing.jpg",Highgui.CV_LOAD_IMAGE_COLOR);
Mat destination = new Mat(source.rows(),source.cols(),
source.type());
source.convertTo(destination, -1, alpha, beta);
Highgui.imwrite("brightWithAlpha2Beta50.jpg", destination);
} catch (Exception e) {
System.out.println("error:" + e.getMessage());
}
}
}
Вывод
Когда вы выполняете данный код, виден следующий вывод -