• 1、二维高斯函数 G(x,y)=12πσ2exp⁡(−x2+y22σ2)G(x,y)=\frac{1}{2\pi {{\sigma }^{2}}}\exp \left( -\frac{{{x}^{2}}+{{y}^{2}}}{2{{\sigma }^{2}}} \right)G(x,y)=2πσ21​exp(−2σ2x2+y2​) 2、坐标（以5×5...
1、二维高斯函数

G

(

x

,

y

)

=

1

2

π

σ

2

exp

⁡

(

−

x

2

+

y

2

2

σ

2

)

G(x,y)=\frac{1}{2\pi {{\sigma }^{2}}}\exp \left( -\frac{{{x}^{2}}+{{y}^{2}}}{2{{\sigma }^{2}}} \right)

2、坐标

(

x

,

y

)

(x,y)

（以5×5卷积核为例）  3、Matlab实现
sigma1=2;
k=5;    % kernel大小
pai=3.1415926;
kernel=zeros(k);
m=(k+1)/2;
sigma=2*sigma1*sigma1;
for i=-1*(k-1)/2:(k-1)/2
for j=-1*(k-1)/2:(k-1)/2
kernel(i+m,j+m)=(-1/(pai*sigma))*exp(-1*(i^2+j^2)/(sigma));
end
end
kernel=kernel./sum(kernel,'all')  % 归一化

结果与Matlab函数fspecial()生成的高斯卷积核一致，卷积核如图所示：  4、OpenCV实现
int main()
{
double sigma = 2, pai = 3.1415926;
int k = 5, m = (k + 1) / 2, n = m - 1;	// k-高斯卷积核大小
Mat kernel = Mat::zeros(Size(k, k), CV_64FC1);
double *p, Ksum;
sigma = 2 * sigma * sigma;
for (int i = -1 * n; i <= n; i++)
{
p = kernel.ptr<double>(i + n);
for (int j = -1 * n; j <= n; j++)
{
p[j + n] = (1 / (pai*sigma)) * exp(-1 * (i * i + j * j) / sigma);
}
}
Ksum = sum(kernel).val[0];
kernel = kernel.mul(1/Ksum);
cout << kernel << endl;

getchar();
return 0;
}

展开全文
• 编辑:根据你的澄清,很清楚发生了什么。您正在尝试对超出可用数据范围的函数进行插值,即从插值到外推。样条曲线会导致你观察到的超调。解决方法很简单,就是确保1d函数的值在区间[min(r),max(r)]内。...

编辑:根据你的澄清,很清楚发生了什么。您正在尝试对超出可用数据范围的函数进行插值,即从插值到外推。样条曲线会导致你观察到的超调。解决方法很简单,就是确保1d函数的值在区间[min(r),max(r)]内。注意,在原始数据中,max(r)约为424,而您正在插值的函数是在范围[-300299]上定义的。
% Simulated overshoot, see left figure:
x1d = [-300:299];
[x,y]=meshgrid(x1d,x1d);
r = sqrt(x.^2+y.^2);
gsn1d = exp(-x1d.^2/500);
lowpass = @(x)(x1d > -x & x1d < x);
gsn1dcutoff = ifft(fftshift(lowpass(10).*fftshift(fft(gsn1d))));
plot(gsn1dcutoff)
OTF2d = reshape(interp1(x1d,gsn1dcutoff,r(:),'spline'),[length(x1d),length(x1d)]);
mesh(OTF2d)
% Quick and dirty fix, see right figure:
x1dExtended = linspace(min(x1d*sqrt(2)),max(x1d*sqrt(2)),ceil(length(x1d)*sqrt(2)));
gsn1dE = exp(-x1dExtended.^2/500);
% ^^^ note that this has 600*sqrt(2) points and is defined on the diagonal of your square. Now we can low-pass filter in the freq. domain to add ripple in space domain:
lowpass = @(x)(x1dExtended > -x & x1dExtended < x);
gsn1dcutoff = -real(ifft(fftshift(lowpass(10).*fftshift(fft(gsn1dE)))));
plot(gsn1dcutoff)
OTF2d = reshape(interp1(x1dExtended,gsn1dcutoff,r(:),'spline'),[length(x1d),length(x1d)]);
mesh(OTF2d)

展开全文
• MATLAB实例：二维高斯分布图

千次阅读 2021-05-08 17:12:02
MATLAB实例：二维高斯分布图问题描述：用MATLAB在一张图上同时画出二维高斯散点图与分布图。数据来源：MATLAB高斯混合数据的生成将二维数据保存为gauss_data.txt。前期工作：1. MATLAB程序clearclc% Author: 凯鲁...

MATLAB实例：二维高斯分布图
问题描述：用MATLAB在一张图上同时画出二维高斯散点图与分布图。
数据来源：MATLAB高斯混合数据的生成 将二维数据保存为gauss_data.txt。
前期工作：
1. MATLAB程序
clear
clc
% Author: 凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/
%% 加载数据
% 每一类
%% 空间坐标范围
x1=-8:0.1:8;
x2=-10:0.1:8;
[X1, X2]=meshgrid(x1, x2);
X=[X1(:) X2(:)];
%第一类数据
mu1=[0 0]; % 均值
S1=[1 0;0 1]; % 协方差
%第二类数据
mu2=[4 4];
S2=[2 -1;-1 2];
%第三类数据
mu3=[-4 4];
S3=[2 1;1 2];
%第四类数据
mu4=[-4 -4];
S4=[2 -1;-1 2];
%第五类数据
mu5=[4 -4];
S5=[2 1;1 2];
%% 高斯概率密度函数
% 分量1
y_1=mvnpdf(X, mu1, S1);
y_1=reshape(y_1, length(x2), length(x1));
% 分量2
y_2=mvnpdf(X, mu2, S2);
y_2=reshape(y_2, length(x2), length(x1));
% 分量3
y_3=mvnpdf(X, mu3, S3);
y_3=reshape(y_3, length(x2), length(x1));
% 分量4
y_4=mvnpdf(X, mu4, S4);
y_4=reshape(y_4, length(x2), length(x1));
% 分量5
y_5=mvnpdf(X, mu5, S5);
y_5=reshape(y_5, length(x2), length(x1));
%% 作图
figure(1)
contour(x1, x2, y_1);
hold on
contour(x1, x2, y_2);
contour(x1, x2, y_3);
contour(x1, x2, y_4);
contour(x1, x2, y_5);
xlabel('X');
ylabel('Y');
plot(data_1(:, 1), data_1(:, 2), 'b.', 'MarkerSize',10 );
hold on
plot(data_2(:, 1), data_2(:, 2), 'r^', 'MarkerSize',4, 'MarkerFaceColor','r');
plot(data_3(:, 1), data_3(:, 2), 'ko', 'MarkerSize',4, 'MarkerFaceColor','g');
plot(data_4(:, 1), data_4(:, 2), 'rp', 'MarkerSize',4, 'MarkerFaceColor','y');
plot(data_5(:, 1), data_5(:, 2), 'mh', 'MarkerSize',4, 'MarkerFaceColor','m');
saveas(gcf,sprintf('2D_Gauss_PDF.jpg'),'bmp'); %保存图片
2. 结果


展开全文
• 、背景知识   高斯滤波器是种线性滤波器，能够有效的抑制噪声，平滑图像。...  二维高斯函数如下：   其中(x,y)为点坐标，在图像处理中可认为是整数，σ是标准差。要想得到高斯滤波器的，可以对高
一、背景知识
高斯滤波器是一种线性滤波器，能够有效的抑制噪声，平滑图像。其窗口模板的系数和均值滤波器不同，均值滤波器的模板系数都是1，而高斯滤波器的模板系数，则随着远离模板中心而减小。所以，高斯滤波器相对均值滤波器而言对图像的模糊程度较小。高斯滤波对图像邻域内像素进行平滑时，邻域内不同位置的像素被赋予不同的权值，对图像进行平滑的同时，同时能够更多的保留图像的总体灰度分布特征。   二维高斯函数如下：    其中(x,y)为点坐标，在图像处理中可认为是整数，σ是标准差。要想得到一个高斯滤波器的核，可以对高斯函数进行离散化，将得到的离散高斯函数值作为高斯核的系数。设我们需要的高斯核尺寸为ksize = 2k+1，则二维高斯核中各个系数值为：    经过多次调参，我发现sigma = 2时滤波平滑效果较好。由于高斯函数图像形如钟型曲线，当核尺寸与sigma的比值为3时，已经包含约99%的图像信息，故我选择设置高斯核尺寸ksize = 7。   由此生成的7×7二维高斯核如下图所示：
二、Matlab实现代码（函数形式）
% 自编二维高斯滤波函数，image是需要滤波的图象，ksize是二维高斯滤波器模板尺寸，sigma是方差
function output=Gauss_filter(image,ksize,sigma)
% 计算图象中心位置
k=floor((ksize-1)/2);
% 先初始化
gauss_kernel = zeros(ksize,ksize);
% 生成二维离散高斯卷积核（尺寸为ksize×ksize）
for i=1:ksize
for j=1:ksize
% 将二维高斯函数离散化
gauss_kernel(i,j) = exp(-((i-k-1)^2+(j-k-1)^2)/(2*sigma.^2))/(2*pi*sigma.^2);
end
end
% 用生成的离散高斯卷积核对图像进行卷积，实现二维高斯滤波
result=conv2(image,gauss_kernel,'same');
output=uint8(result);
end

三、实验结果
用上面生成的离散高斯核对图像进行卷积，即可实现二维高斯滤波。 原始图像选择加了噪声的lena小姐姐：
高斯滤波结果如下图所示： 
展开全文
• 这里总结高斯核函数。 getGaussianKernel Returns Gaussian filter coefficients. C++: Mat getGaussianKernel(int ksize, double sigma, int ktype=CV_64F ) Python: cv2.getGaussianKernel(ksize, sigma[, ktype]...
• 高斯核函数是种应用广泛的函数:其中h为bandwidth 带宽，不同带宽的函数形式也不一样高斯核示例由上图可以看到，横坐标指的是两变量之间的距离。距离越近(接近于0)则函数值越大，否则越小。h越大，相同距离的...
• 高斯核函数

千次阅读 2021-01-13 09:11:23
在计算机视觉中，有时也简称为...高斯函数具有五个十分重要的性质，它们是:(1)二维高斯函数具有旋转对称性，即滤波器在各个方向上的平滑程度是相同的.一般来说，幅图像的边缘方向是事先不知道的，因此，在滤波前...
• 首先，把二维正态分布密度函数的公式贴这里 这只图好大啊~~但是上面的那个是多维正态分布的密度函数的通式，那个n阶是对称正定方阵叫做协方差矩阵，其中的x,pi,u都是向量形式。虽然这个式子很酷，但是用在matlab里...
• 目录 1、简介 2、理解 函数定义 ...与线性相比 ...已知有组向量，可用线性函数去探索其是否具有线性关系，若数据之间是非线性呢？...但非线性问题往往不好求解，所以希望用...如下图，从低转换到高维，φ是转换函
• 高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的类噪声。如果个噪声，它的幅度分布服从高斯分布，而它的功率谱密度又是均匀分布的，则称它为高斯白噪声。高斯白噪声的二阶矩不相关，阶矩为常数，是指...
• MATLAB用“fitgmdist”函数拟合高斯混合模型(一维数据)在MATLAB中“fitgmdist”的用法及其GMM聚类算法中介绍过"fitgmdist"函数的用法，这次用"fitgmdist"拟合一维数据。1. 一维高斯混合数据的产生function data=...
• 二维高斯滤波器图像滤波MTATLAB程序设计用MATLAB设计个3×3模板标准差为0.5，1.5，2.5的二维高斯低通滤波器(Gaussion low pass filter分别对灰度图像，真彩色图像，伪彩色图像进行滤波处理%二维高斯低通滤波器%...
• (1)二维高斯去曲面拟合推导二维高斯方程可以写成如下形式：其中，G为高斯分布的幅值，,为x,y方向上的标准差，对式(1)两边取对数，并展开平方项，整理后为：假如参与拟合的数据点有N个，则将这个N个数据点写成...
• 为什么使用自适应高斯滤波器：通常情况下，在使用高斯滤波器对二维图像进行平滑处理时，高斯函数的方差sigma是个固定的值。在图像的细节区域(比如头发丝)，使用较大的sigma会造成过度平滑，使之失去细节信息，在...
• 本质是将原本数据，映射到个无穷空间（样本理论上有无穷多个） 计算开销特别大~~~~~~ 有些应用适合 初始样本数据样本维度高 数量却不多 m < n 通常 就是自然语言处理领域 构建高维特征空间，然而样本的数量不...
• 二维高斯函数，形如 A是幅值，x。y。是中心点坐标，σxσy是方差，图示如下，A= 1,xo= 0,yo= 0, σx= σy= 1 对于学图像专业的人来说，对图像进行高斯滤波应该不会陌生，本质上就是将图像与高斯核进行卷积。但是高斯...
• DOI：10．16707~．cnki．fjpc．2017．04．002 ：摄⋯～堡⋯⋯ ⋯⋯牌 U {lA N C0 M pUT麓 加权组合多尺度各向异性高斯核对象轮廓检测 程 慧，廖仕荣 ，陈惠斌 ，董振鑫 ，黄唯佳，何泽涛，张泽均 (福建农林大学...
• 首先，把二维正态分布密度函数的公式贴这里这只图好大啊~~但是上面的那个是多维正态分布的密度函数的通式，那个n阶是对称正定方阵叫做协方差矩阵，其中的x,pi,u都是向量形式。虽然这个式子很酷，但是用在matlab里...
• 双边滤波器、高斯滤波 双边滤波(Bilateral filter)是种非...一般的高斯模糊在进行采样时主要考虑了像素间的空间距离关系，但是却并没有考虑像素值之间的相似程度，因此这样我们得到的模糊结果通常是整张图片团...
• import numpy as np from sklearn import datasets import matplotlib.pyplot as plt MarkerList = ["<","*","o"] add = [0,8,4] data = None for i in range(3): X, y = datasets.make_blobs(n_samples=120,n...
• 来学校之后，决定继续看完数字图像处理书。还是想按照上学期的模式，边看边实现书中的算法。上学期看的时候，是用C语言实现的，发现写程序太耗时间了，所以决定还是学习下Matlab吧(寒假莫有学会Python中的那些库...
• "模糊"的算法有很多种，其中有种叫做"高斯模糊"（Gaussian Blur）。它将正态分布（又名"高斯分布"）用于图像处理。 本文介绍"高斯模糊"的算法，你会看到这是个非常简单易懂的算法。本质上，它是种数据平滑...
• 二维高斯混合函数，如(2)式所示。 （2） 可以看出二维高斯混合模型，其中的d为数据的维度，在这里等于2；∑ 代表协方差矩阵，两行两列；这里的x以及μ都是二维的数据，用矩阵表示就是行两列。 协方差矩阵 ...
• 高斯光束的matlab仿真题目：根据高斯光束数学模型，模拟仿真高斯光束在谐振腔中某位置处的归一化强度分布并给出其二维、三维强度分布仿真图；用Matlab读取实际激光光斑照片中所记录的强度数据(读取照片中光斑的...
• 下节预告 下次介绍gauss积分的二维公式使用以及matlab数值实验，欢迎有问题与我交流，偏微分方程，矩阵计算，数值分析等问题，我的qq 群 315241287 matlab代码 clc;clear; % using 2 3 4 5 points compute the ...
• 1.1 一维定义 1.2 二维定义 1.2.1 应用高斯核的过程 1.2.2 不同σ值的高斯核情况 1.2.3 不同宽度情况 1.2.4 高斯核（滤波）特性 2 噪声 和 滤波 2.1 椒盐噪声、脉冲噪声 2.1.1 形成原因 2.1.2 滤波方法 ...
• 利用Python语言进行简单的数字图像处理(直方图、均衡化、高斯滤波)、 利用Python语言绘制直方图图像直方图为反映幅图像中各灰度级与各灰度级像素出现的频率之间的关系图。PIL (Python Imaging Library)图像库...

...