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

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

方法介绍

在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.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        // 加载 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 = 15;
        int h = 15;
        // 模糊内核参数 int w, int h
        Size size = new Size(w, h);

        // 模糊处理
        Imgproc.blur(src, dst, size, new Point(-1, -1));

        // 保存修改后的图片
        Imgcodecs.imwrite(blur, dst);
    }
}
相关推荐
却道天凉_好个秋14 小时前
Tensorflow数据增强(一):图片的导入与显示
人工智能·python·tensorflow
一行注释也不写14 小时前
【循环神经网络(RNN)】隐藏状态在序列任务中的应用
人工智能·rnn·深度学习
多多*14 小时前
计算机网络相关 讲一下rpc与传统http的区别
java·开发语言·网络·jvm·c#
源码获取_wx:Fegn089514 小时前
计算机毕业设计|基于springboot + vue网上超市系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring·课程设计
屹立芯创ELEADTECH14 小时前
CoWoS封装技术全面解析:架构、演进与AI时代的基石作用
人工智能·架构
码农水水14 小时前
阿里Java面试被问:Online DDL的INSTANT、INPLACE、COPY算法差异
java·服务器·前端·数据库·mysql·算法·面试
Coder_Boy_14 小时前
基于SpringAI的在线考试系统-知识点管理与试题管理模块联合回归测试文档
前端·人工智能·spring boot·架构·领域驱动
小旭952714 小时前
【Java 基础】IO 流 全面详解
java·开发语言
黄焖鸡能干四碗14 小时前
智慧电力解决方案,智慧电厂解决方案,电力运维方案
大数据·人工智能·安全·需求分析
飞Link14 小时前
【计算机视觉】深度学习医疗影像实战:PathMNIST 数据集全解析
人工智能·深度学习·计算机视觉