图像处理 高斯滤波(带权值的均值滤波)

编程入门 行业动态 更新时间:2024-10-19 04:20:50

<a href=https://www.elefans.com/category/jswz/34/1769353.html style=图像处理 高斯滤波(带权值的均值滤波)"/>

图像处理 高斯滤波(带权值的均值滤波)

一、介绍

1、一维高斯滤波。

         

    a表示得到曲线的高度,u是指曲线在x轴的中心, σ指width(与半峰全宽有关,即平方差)。

2、二维高斯滤波。

        

二、二维高斯滤波模版

1、生成维高斯滤波模版。

public class MathUtils {/*** 获取高斯滤波模版的二维数组** @param length 模版长度,length=6sigma(%99.74), length=4sigma(95%), length=2sigma(68%)* @param sigma  模版标准差,length=6sigma(%99.74), length=4sigma(95%), length=2sigma(68%)*/public static double[][] getGaussTemplate(int length, double sigma) {double[][] gaussTemplate = new double[length][length];    // 用于存储结果int centerIndex = (length - 1) / 2;//模版的中心点double variance = sigma * sigma;//方差double sum = 0;for (int i = 0; i < length; ++i) {for (int j = 0; j < length; ++j) {int xLength = j - centerIndex;//x上的距离int yLength = i - centerIndex;//y上的距离double e = Math.exp(-(xLength * xLength + yLength * yLength) / (2 * variance));gaussTemplate[i][j] = e / (2 * Math.PI * variance);sum += gaussTemplate[i][j];}}//占得比重for (int i = 0; i < length; ++i) {for (int j = 0; j < length; ++j) {gaussTemplate[i][j] = gaussTemplate[i][j] / sum;}}//打印模版System.out.println(String.format("生成大小为%d,标准差为%.3f的二维高斯模版:", length, sigma));for (double[] doubles : gaussTemplate) {for (int j = 0; j < gaussTemplate.length; j++) {System.out.print(String.format("%8.3f", doubles[j]));}System.out.println();}return gaussTemplate;}
}
public static void main(String[] args) {//高斯滤波的模版,length=6sigma(%99.74), length=4sigma(95%), length=2sigma(68%)double[][] gaussTemplate1 = FilterUtils.getGaussTemplate(3, 1.5);double[][] gaussTemplate2 = FilterUtils.getGaussTemplate(3, 0.75);double[][] gaussTemplate3 = FilterUtils.getGaussTemplate(3, 0.5);double[][] gaussTemplate4 = FilterUtils.getGaussTemplate(5, 2.5);double[][] gaussTemplate5 = FilterUtils.getGaussTemplate(5, 1.25);double[][] gaussTemplate6 = FilterUtils.getGaussTemplate(5, 0.833);double[][] gaussTemplate7 = FilterUtils.getGaussTemplate(7, 3.5);double[][] gaussTemplate8 = FilterUtils.getGaussTemplate(7, 1.75);double[][] gaussTemplate9 = FilterUtils.getGaussTemplate(7, 1.167);}

2、日志打印的结果。

        生成大小为3,标准差为1.500的二维高斯模版:
           0.095   0.118   0.095
           0.118   0.148   0.118
           0.095   0.118   0.095
        生成大小为3,标准差为0.750的二维高斯模版:
           0.051   0.124   0.051
           0.124   0.301   0.124
           0.051   0.124   0.051
        生成大小为3,标准差为0.500的二维高斯模版:
           0.011   0.084   0.011
           0

更多推荐

图像处理 高斯滤波(带权值的均值滤波)

本文发布于:2024-02-06 17:21:57,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1750218.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:图像处理   高斯   均值   带权值

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!