高斯模糊java代码_Java 实现高斯模糊算法

本文介绍了如何使用Java实现高斯模糊算法,通过高斯函数与图像卷积实现图片模糊处理。内容包括高斯模糊的原理、二维高斯函数的计算以及Java代码实现,展示了如何读取图像、处理边界情况并计算像素的平均值来达到模糊效果。
摘要由CSDN通过智能技术生成

接上篇文章《高斯模糊算法的原理》,本文我们借助 java 来实现高斯模糊算法,并使用高斯模糊算法处理实际图片。

高斯模糊就是图像和高斯函数的卷积。等价于傅里叶变换后乘上高斯函数再逆变换回来(高斯函数的傅里叶变换也是高斯函数),没错就是低通滤波。实现方式可以按照卷积公式算,复杂度 O(n?m?)。考虑到二维高斯函数 G(x,y)可以写成两个一维高斯函数 G(x)和 G(y)的乘积,也就是 G(x)δ(y)和 G(y)δ(x)的卷积,也就是可以 x 和 y 两个方向分别做高斯模糊。O(n?m)卷积核很大的时候也可以用 FFT->相乘->IFFT 的方式实现,复杂度 O((m+n)?log(m+n)),不过高斯模糊的 m 也就是几个像素,就不要考虑这个了。

下面我们使用 java 来实现一个高斯模糊案例。

import java.awt.Color;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import javax.imageio.ImageIO;

public class Test {

static float [][]aa;

//计算高斯后的权重矩阵

final static int shu = 1;

//高斯模糊半径

final static int size = 2*shu+1;

//数组大小

/** * 简单高斯模糊算** @param args* @throws IOException [参数说明]**/

/* @return void [返回类型说明]* @

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值