Open CV 图像处理基础:(四)使用 Open CV 在 Java 中进行基本的图片模糊处理

使用 Open CV 在 Java 中进行基本的图片模糊处理

目录

  • 使用 Open CV 在 Java 中进行基本的图片模糊处理
    • 方法介绍
      • 均值模糊(Averaging Blur):
      • 高斯模糊(Gaussian Blur):
      • 中值模糊(Median Blur):
      • 双边滤波(Bilateral Filter):
    • 代码
    • 示例
    • Open CV 专栏导航

方法介绍

在Java中使用OpenCV进行图片模糊处理,主要可以通过以下几种方式:

均值模糊(Averaging Blur):

通过计算核窗口内所有像素的平均值来模糊图像。这种方法可以移除图像噪声,但也会使图像细节变得模糊。

Imgproc.blur(src, dst, new Size(10, 10), new Point(-1, -1), Core.BORDER_DEFAULT);

这里src是原始图像,dst是模糊后的图像,new Size(10, 10)定义了核窗口的大小。

高斯模糊(Gaussian Blur):

这种模糊使用正态分布的权重核,相较于均值模糊,它保留了更多的图像细节。

Imgproc.GaussianBlur(src, dst, new Size(15, 15), 0);

其中new Size(15, 15)指定了高斯核的大小,0指定了沿X和Y方向的标准偏差。

中值模糊(Median Blur):

使用核窗口内像素的中值来替换。对于去除椒盐噪声很有效,同时能够保留边缘。

Imgproc.medianBlur(src, dst, 5);

其中5指定了核的大小,它必须是一个正的奇数。

双边滤波(Bilateral Filter):

它可以在保持边缘清晰的情况下减少不必要的噪声。这种过滤器通常用于图像去噪。

Imgproc.bilateralFilter(src, dst, 9, 75, 75);

其中9是邻域直径,两个75分别是颜色空间和坐标空间的标准偏差。

代码


import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Point;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;public class ImageBlur {static {// 加载 OpenCV 的本地库,方式任选一种即可System.load("D:/dll/x64/opencv_java440.dll");}public static void main(String[] args) {String old = "D:/to/image.jpg";String blur = "D:/to/blur_image.jpg";// 读取图片Mat src = Imgcodecs.imread(old);// 检查图片是否正确读取if (src.empty()) {System.out.println("图片读取错误");return;}// 模糊度标准Mat dst = new Mat();int w = 45;int h = 45;// 模糊内核参数 int w, int hSize size = new Size(w, h);// 模糊处理Imgproc.blur(src, dst, size, new Point(-1, -1));// 保存修改后的图片Imgcodecs.imwrite(blur, dst);}
}

示例

在这里插入图片描述

Open CV 专栏导航

  • (一)Open CV 在windows环境初始化和 Java 动态库加载方式介绍
  • (二)Open CV 从基本概念到实践操作
  • (三)使用 Open CV 在 Java 中进行基本的图片缩放操作
  • (四)使用 Open CV 在 Java 中进行基本的图片模糊处理
  • (五)Java 使用 Open CV 的绘图函数
  • (六)在Java中使用 Open CV进行图片翻转和图片旋转