本文主要是介绍图像处理 高斯滤波(带权值的均值滤波),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、介绍
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
这篇关于图像处理 高斯滤波(带权值的均值滤波)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!