如何使用Java OpenCV库更改图像亮度?
org.opencv.core.Mat类的convertTo()方法对给定的矩阵执行必要的计算,以更改图像的对比度和亮度。此方法接受4个参数:
mat - 空矩阵,用于保存与源矩阵大小和类型相同的计算结果。
rtype - 指定输出矩阵类型的整数值。如果此值为负,则类型将与源类型相同。
alpha - 增益值,必须大于0(默认值为1)。
beta - 偏差值(默认值为0)。
使用OpenCV Java库更改图像亮度
如上所述,传递给此方法的beta值会更改图像的亮度。如果此参数的值为负值(0到-255),则图像亮度降低。类似地,如果它大于0(0到255),则图像亮度增加。
要更改图像的对比度,请通过传递空矩阵、-1(获取相同的类型)、1作为alpha值以及beta值来调用**convertTo()**方法,以增加或减少亮度。
示例
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
public class AlteringBrightness {
public static void main (String[] args) {
//Loading the OpenCV core library
System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
//Reading the Image from the file
String file ="D:\Images\tiger.jpg";
Mat src = Imgcodecs.imread(file, Imgcodecs.IMREAD_COLOR);
//Creating an empty matrix
Mat dest = new Mat(src.rows(), src.cols(), src.type());
//Increasing the brightness of an image
src.convertTo(dest, -1, 1, 100);
// Writing the image
Imgcodecs.imwrite("D:\Images\altering_brightness_100.jpg", dest);
}
}输入图像

以下是不同alpha值的各种输出图像:
α值:-100

α值:-50

α值:50

α值:100

广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP