个性化阅读
专注于IT技术分析

Java中的图像处理S12(对比度增强)

在本文中, 我们将学习如何使用OpenCV库增强图像的对比度。为了增强对比度, 使用直方图均衡技术。

有关直方图均衡技术的更多信息, 请参阅这里。

首先, 我们需要为Java设置OpenCV, 我们建议使用eclipse相同, 因为它易于使用和设置。有关安装, 请参阅http://docs.opencv.org/2.4/doc/tutorials/introduction/java_eclipse/java_eclipse.html

现在让我们了解对比度增强所需的一些方法。

  1. equalizeHist(source, destination)–此方法位于OpenCv的Imgproc程序包中。资源参数是8位单通道源图像, 并且目的地参数是目标图像
  2. Imcodecs.imread()/ Imcodecs.imwrite()–这些方法用于将图像读取和写入为由OpenCV渲染的Mat对象。
//Java program to demonstrate contrast enhancement
package ocv;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
  
public class Main
{
     public static void main( String[] args )
     {
         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 );
  
             //input image
             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
             Imgcodecs.imwrite( "E:\\output.jpg" , destination);
         }
         catch (Exception e)
         {
             System.out.println( "error: " + e.getMessage());
         }
     }
}

注意:

该代码无法在在线IDE中使用, 因为它需要硬盘中的图像。

Input.jpg

Java中的图像处理S12(对比度增强)1

Output.jpg

Java中的图像处理S12(对比度增强)2

如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。

赞(1)
未经允许不得转载:srcmini » Java中的图像处理S12(对比度增强)

评论 抢沙发

评论前必须登录!