Java中的图像处理——对比度增强
先决条件:
- Java中的图像处理——读写
- Java中的图像处理——获取和设置像素
- Java中的图像处理——彩色图像到灰度图像的转换
- Java中的图像处理——彩色图像到负图像的转换
- Java中的图像处理——彩色到红绿蓝图像的转换
- Java中的图像处理——彩色图像到棕褐色图像的转换
- Java中的图像处理——创建随机像素图像
- Java中的图像处理——创建镜像
- Java中的图像处理——人脸检测
- Java中的图像处理——给图像加水印
- Java中的图像处理——改变图像的方向
对比度增强
首先,我们需要为Java设置 OpenCV,我们建议使用 eclipse,因为它易于使用和设置。现在让我们了解增强图像颜色所需的一些方法。现在让我们了解一些对比度增强所需的方法。
方法一:equalizeHist(source,destination):该方法驻留在opencv的Imgproc包中。source参数为8位单通道源图像, destination参数为目标图像
方法 2:Imcodecs.imread() 或 Imcodecs.imwrite():这些方法用于读取和写入由 OpenCV 渲染的 Mat 对象的图像。
实现:让我们取一个任意输入图像,如下所示:
例子:
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