- Java数字图像处理
- DIP - 主页
- DIP - 简介
- DIP - Java BufferedImage 类
- DIP - 图像下载和上传
- DIP - 图像像素
- DIP - 灰度转换
- DIP - 增强图像对比度
- DIP - 增强图像亮度
- DIP - 增强图像清晰度
- DIP - 图像压缩技术
- DIP - 添加图像边框
- DIP - 图像Pyramid
- DIP - 基本阈值
- DIP - 图像形状转换
- DIP - 高斯滤波器
- DIP - 箱式过滤器
- DIP - 腐蚀和膨胀
- DIP - 水印
- DIP - 理解卷积
- DIP - Prewitt 操作员
- DIP - 索贝尔操作员
- DIP - 基尔希运算符
- DIP - 罗宾逊操作员
- DIP - 拉普拉斯算子
- DIP - 加权平均滤波器
- DIP - 创建缩放效果
- DIP - 开源库
- DIP - OpenCV 简介
- DIP - 灰度转换 OpenCV
- DIP - 色彩空间转换
- DIP 有用资源
- DIP - 快速指南
- DIP - 有用的资源
- DIP - 讨论
Java DIP - 增强图像亮度
在本章中,我们通过将图像的每个像素乘以一个 alpha 值并添加另一个 beta 值来增强图像的亮度。
我们的OpenCV函数convertTo会自动完成上述操作。它可以在Mat包下找到。其语法如下 -
int alpha = 2; int beta = 50; sourceImage.convertTo(destination, rtype , alpha, beta);
参数描述如下 -
先生。 | 参数及说明 |
---|---|
1 |
目的地 这是目的地图像。 |
2 |
类型 这是所需的输出矩阵类型,或者更确切地说是深度,因为通道数与输入相同。如果 rtype 为负,则输出矩阵将具有与输入相同的类型。 |
3 |
α 它是可选的比例因子。 |
4 |
贝塔 它是添加到缩放值的可选增量。 |
除了convertTo方法之外,Mat类还提供了其他方法。它们被简要描述 -
先生。 | 方法及说明 |
---|---|
1 |
调整ROI(int dtop,int dbottom,int dleft,int dright) 它调整子矩阵的大小和在父矩阵中的位置。 |
2 |
复制到(Mat m) 它将矩阵复制到另一个矩阵。 |
3 |
诊断() 它从矩阵中提取对角线,或创建对角矩阵。 |
4 |
点(垫米) 它计算两个向量的点积。 |
5 |
重塑(int cn) 它可以更改 2D 矩阵的形状和/或通道数,而无需复制数据。 |
6 |
submat(范围 rowRange, 范围 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()); } } }
输出
当您执行给定的代码时,会看到以下输出 -