JAVA图像处理——高斯模糊

高斯模糊:
高斯模糊简单的说就是让图像的像素点取周围的像素点的平均,达到令图片模糊的效果。
当然,简单的取平均值是不太好的,因为一般与像素点距离近的像素点他们的颜色更接近,距离远的颜色偏离更大,所以可以采用正态分布曲线来取权重。
正态分布的曲线如下图:

正好符合中间点权重最高,距离中间点越远距离越低的效果,而且过度很平滑(个人这么认为)。
我们需要2维的正态分布函数,如下图:

sigma是方差,从方差的定义我们大概能推测方差越大,图像模糊的越厉害,事实也是这样。
接下来我们要决定应该取一个像素周围多少范围内的像素点来参与高斯权重值得计算呢?
我们取6sigma+1,因为大于6sigma+1的正态分布函数值(也就是权重)太小了,几乎可以忽略不计了。
接下来我们可以计算我们的高斯权重矩阵了。我们用一个二维数组来保存这些权重值。
例如我们只取周围距离一个像素的点来算平均值的画就如下图所示:

每个格子都是一个像素,对应二维矩阵内的就是当前位置像素的权重值,中间红格子是当前要计算的像素,他的颜色值=周围所有像素的 权重*颜色值之和。
根据上面的正态分布函数公式,我们写出了下面的方法求这个二维权重矩阵的所有值。

 private static float[][] getGaos(float sigma) {int size = (int) (6*sigma)+1;if(size%2==0) {size++;}float[][] res = new float[size][size];for(int y=0;y<size;y++)for(int x=0;x<size;x++){float zhishu = -1*(((x-size/2)*(x-size/2))+((y-size/2)*(y-size/2)))/(2*sigma*sigma);float a = (float) (1.0f/(2.0f*Math.PI*sigma*sigma));res[x][y] = (float) (a*Math.pow(Math.E, zhishu));}return res;}

然后根据权重矩阵计算各个点的像素颜色值就可以了。
下面是效果图:


最后要注意边界的矩阵取不到全部的像素值时只要取能取到的值就可以了。
如果还不明白的话这里也有讲,我也是从这里参考来的:
http://www.ruanyifeng.com/blog/2012/11/gaussian_blur.html

JAVA图像处理——高斯模糊相关推荐

  1. Java图像处理方面的工具库和开发包

    Java图像处理类库Java Image Filters Java Image Filters 是由 Jhlabs 开发的一组用来处理 Java 图像的类库,提供各种常用的图像处理效果,例如反转色.扭 ...

  2. java图像处理-(指定区域内)灰度化、透明化(alpha通道)处理

    java图像处理-(指定区域内)灰度化.透明化(alpha通道)处理 2016年07月25日 21:23:16 阅读数:3944 近日在一家小公司实习,老板要求我写一个图形编辑器,其中涉及到用java ...

  3. java毕业设计——基于java+图像处理技术的医学图像处理系统设计与实现(毕业论文+程序源码)——医学图像处理系统

    基于java+图像处理技术的医学图像处理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+图像处理技术的医学图像处理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...

  4. Java图像处理--------RGB调色面板

    Java图像处理--------RGB调色面板 一:概述 因为我们知道颜色是由R.G.B.三种颜色所组成的,那么我们只需要更改这三个的数值.我们就可以实现一个简单的调色面板:以下是代码演示: 二:代码 ...

  5. Java 图像处理教程(人脸检测,添加水印,图像颜色转换)

    Java 图像处理教程(人脸检测,添加水印,图像颜色转换) 文章目录 Java 图像处理教程(人脸检测,添加水印,图像颜色转换) 1:图片的读和写 2:彩色图像转换成灰度图像 3:彩色图像转换成负图像 ...

  6. java imageio处理图像_Linux geoserver调优之Java图像处理优化(原生JAI和ImageIO和java默认库相互转换)...

    注:geoserver 版本 Linux geoserver2.15.0    安装 :bin方式安装(内嵌jetty,非war安装) 一.geoserver调优之Java图像处理优化 1.原生JAI ...

  7. OpenCV3.2 Java图像处理视频学习教程-贾志刚-专题视频课程

    OpenCV3.2 Java图像处理视频学习教程-2434人已学习 课程介绍         OpenCV3.2 Java图像处理视频培训课程:基于OpenCV新版本3.2.0详细讲述Java Ope ...

  8. android 开源 高斯模糊_Android图像处理 - 高斯模糊的原理及实现

    欢迎大家前往由 前言 高斯模糊是图像处理中几乎每个程序员都或多或少听过的名词,但是对其原理大家可能并不了解,只知道通过高斯模糊能实现图像毛玻璃效果. 本文首先介绍图像处理中最基本的概念:卷积:随后介绍 ...

  9. android 7.0 高斯模糊,Android图像处理 – 高斯模糊的原理及实现

    前言 高斯模糊是图像处理中几乎每个程序员都或多或少听过的名词,但是对其原理大家可能并不了解,只知道通过高斯模糊能实现图像毛玻璃效果. 本文首先介绍图像处理中最基本的概念:卷积:随后介绍高斯模糊的核心内 ...

最新文章

  1. C/C++反序输出字符串总结
  2. 测试另外一个厂商的T254 高频功率MOS管
  3. memmove, memcpy 的mem魔法
  4. python之multiprocessing创建进程
  5. 大数据druid查询不支持分页_Druid实时大数据分析查询(六)
  6. 用python爬虫抓站的一些技巧总结
  7. idea maven项目下载源码及关联源码
  8. java 中间件_从头到尾说一遍Java(中间件)垃圾回收
  9. MySQL三种打开方式
  10. 分布式系统关注点——如何去实施「负载均衡」?
  11. mysql双节点部署_MariaDB GALERA 集群双节点部署
  12. AndroidSDK下载
  13. java对象转json
  14. 百度云文字识别demo
  15. python词性标注_Python NLTK学习5(词性标注)
  16. 计算机毕业设计、课程设计之[含论文+源码等]S2SH+mysql的报刊订阅系统[包运行成功]
  17. 2017年10月份上海拍牌 最后20秒发生了什么!
  18. 媒体应用视频超分AI神器!360P视频一键转换HD
  19. 记一次任意用户密码重置漏洞(session覆盖)
  20. 理解块存储、文件存储和对象存储的应用场景和选择

热门文章

  1. java byte追加_byte数组追加 java
  2. 一些常见BootLoader介绍
  3. java 长方体类_java实例_多态 [长方形类Rect长方体类Cub添加抽象类 Shape]
  4. auto.js 简单入门教程
  5. UpdatePanel的用法详解
  6. 小程序蓝牙模块教程--小程序走过的坑(12)(最新版)
  7. 20个高级Java面试题汇总
  8. Modelsim基础使用二
  9. 码垛机器人逐渐代替人工,“授之以鱼不如授之以渔”
  10. Web——网页列表(实验6)