Java中的图像处理——亮度增强
先决条件:
- Java中的图像处理——读写
- Java中的图像处理——获取和设置像素
- Java中的图像处理——彩色图像到灰度图像的转换
- Java中的图像处理——彩色图像到负图像的转换
- Java中的图像处理——彩色到红绿蓝图像的转换
- Java中的图像处理——彩色图像到棕褐色图像的转换
- Java中的图像处理——创建随机像素图像
- Java中的图像处理——创建镜像
- Java中的图像处理——人脸检测
- Java中的图像处理——给图像加水印
- Java中的图像处理——改变图像的方向
- Java中的图像处理——对比度增强
图像的亮度可以通过将图像的每个像素乘以一个 alpha 值,然后添加一个 beta 值来增强。
使用Java增强图像的亮度
首先,我们需要为Java设置 OpenCV,我们建议使用 eclipse,因为它易于使用和设置。现在让我们讨论一个具体的方法。用于亮度增强的如下:
方法一: convertTo(destination, rtype, alpha, beta):它位于 OpenCV 的 Mat 包中。
句法:
sourceImage.convertTo(destination, rtype, alpha, beta);
参数:
- 目的地图片
- 所需的输出矩阵类型
- 可选比例因子乘以源图像的每个像素
- 添加到缩放值的可选 beta 值。
方法二: imread():将图像读取为Mat对象,由OpenCV渲染。
句法:
Imgcodecs.imread(filename);
参数:图像文件的文件名。如果图像在另一个目录中,则必须提及图像的整个路径。
方法二: 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: