java灰度图像线性增强
时间: 2024-08-13 19:02:35 浏览: 63
在Java中,线性增强通常是调整灰度图像亮度的一种方法,通过乘法运算改变每个像素值,使其变得更亮或更暗。下面是一个简单的例子,假设我们想将所有像素值放大一倍,使得图像看起来更明亮:
```java
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
public class LinearEnhancementExample {
static {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}
public static void main(String[] args) {
// 加载灰度图像
Mat grayImage = Imgcodecs.imread("gray_input.jpg", Imgcodecs.IMREAD_GRAYSCALE);
// 检查图像是否有效
if (grayImage.empty()) {
System.out.println("Could not read the image");
return;
}
// 定义增强因子(这里放大1倍)
double enhancementFactor = 2;
// 对每个像素应用线性增强
Mat enhancedImage = new Mat(grayImage.size(), grayImage.type());
Core.multiply(grayImage, enhancementFactor, enhancedImage);
// 保存并显示增强后的图像
Imgcodecs.imwrite("linear_enhanced.jpg", enhancedImage);
Imgcodecs.imshow("Original Gray Image", grayImage);
Imgcodecs.imshow("Linearly Enhanced Image", enhancedImage);
// 等待用户按键
Imgcodecs.waitKey(0);
Imgcodecs.destroyAllWindows();
}
}
```
在这个代码片段中,`Core.multiply()`函数乘以给定的增强因子来改变像素值。
阅读全文