怎么用python表示出二维高斯分布函数,mu表示均值 , sigma表示协方差矩阵 , x表示数据点clear
close all
%%%%%%%%%%%%%%%%%%%%%%%%%生成实验数据集
rand('state',0)
sigma_matrix1=eye(2);
sigma_matrix2=50*eye(2);
u1=[0,0];
u2=[30,30];
m1=100;
m2=300;%样本数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sm1数据集
Y1=multivrandn(u1,m1,sigma_matrix1);
Y2=multivrandn(u2,m2,sigma_matrix2);
scatter(Y1(:,1),Y1(:,2),'bo')
hold on
scatter(Y2(:,1),Y2(:,2),'r*')
title('SM1数据集')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sm2数据集
u11=[0,0];
u22=[5,5];
u33=[10,10];
u44=[15,15];
m=600;
sigma_matrix3=2*eye(2);
Y11=multivrandn(u11,m,sigma_matrix3);
Y22=multivrandn(u22,m,sigma_matrix3);
Y33=multivrandn(u33,m,sigma_matrix3);
Y44=multivrandn(u44,m,sigma_matrix3);
figure(2)
scatter(Y11(:,1),Y11(:,2),'bo')
hold on
scatter(Y22(:,1),Y22(:,2),'r*')
scatter(Y33(:,1),Y33(:,2),'go')
scatter(Y44(:,1),Y44(:,2),'c*')
title('SM2数据集')
end
function Y = multivrandn(u,m,sigma_matrix)
%%生成指定均值和协方差矩阵的高斯数据
n=length(u);
c = chol(sigma_matrix);
X=randn(m,n);
Y=X*c ones(m,1)*u;
end
2021-02-08 Python OpenCV GaussianBlur()函数borderType= None)函数
此函数利用高斯滤波器平滑一张图像 。该函数将源图像与指定Python打高斯函数的高斯核进行卷积 。
src:输入图像
ksize:(核的宽度,核的高度),输入高斯核的尺寸,核的宽高都必须是正奇数 。否则,将会从参数sigma中计算得到 。
dst:输出图像,尺寸与输入图像一致 。
sigmaX:高斯核在X方向上的标准差 。
sigmaY:高斯核在Y方向上的标准差 。默认为None,如果sigmaY=0,则它将被设置为与sigmaX相等的值 。如果这两者都为0,则它们的值会从ksize中计算得到 。计算公式为Python打高斯函数:
borderType:像素外推法,默认为None(参考官方文档 BorderTypes
)
在图像处理中,高斯滤波主要有两种方式Python打高斯函数:
1.窗口滑动卷积
2.傅里叶变换
在此主要利用窗口滑动卷积 。其中二维高斯函数公式为Python打高斯函数:
根据上述公式,生成一个3x3的高斯核,其中最重要的参数就是标准差 , 标准差越大,核中心的值与周围的值差距越?。咴狡交?。标准差越?。?核中心的值与周围的值差距越大 , 曲线越陡峭 。
从图像的角度来说,高斯核的标准差越大,平滑效果越不明显 。高斯核的标准差越小,平滑效果越明显 。
【包含Python打高斯函数的词条】 可见,标准差越大 , 图像平滑程度越大
参考博客1:关于GaussianBlur函数
参考博客2:关于高斯核运算
如何用python实现图像的一维高斯滤波器如何用python实现图像的一维高斯滤波器
现在把卷积模板中的值换一下 , 不是全1了,换成一组符合高斯分布的数值放在模板里面 , 比如这时中间的数值最大,往两边走越来越小 , 构造一个小的高斯包 。实现的函数为cv2.GaussianBlur() 。对于高斯模板 , 我们需要制定的是高斯核的高和宽(奇数),沿x与y方向的标准差(如果只给x,y=x,如果都给0,那么函数会自己计算) 。高斯核可以有效的出去图像的高斯噪声 。当然也可以自己构造高斯核,相关函数:cv2.GaussianKernel().
import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread(‘flower.jpg‘,0) #直接读为灰度图像
for i in range(2000): #添加点噪声
temp_x = np.random.randint(0,img.shape[0])
temp_y = np.random.randint(0,img.shape[1])
img[temp_x][temp_y] = 255
blur = cv2.GaussianBlur(img,(5,5),0)
plt.subplot(1,2,1),plt.imshow(img,‘gray‘)#默认彩色 , 另一种彩色bgr
plt.subplot(1,2,2),plt.imshow(blur,‘gray‘)
Python打高斯函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、Python打高斯函数的信息别忘了在本站进行查找喔 。
推荐阅读
- 红米路由器怎么改频宽模式,红米路由器怎么设置网速最快
- 石家庄西兆通网红直播基地的简单介绍
- wamp连接php数据库 wamp怎么连接数据库
- 手机显卡无信号怎么解决,手机显卡没信号
- 怎么更新word目录,怎么更新word目录保证格式和原来一样
- 销售话术直播,销售直播开场白台词大全集
- 传智播客go语言培训 传智播客ui培训怎么样
- 华为手机退出箭头怎么设置,华为手机怎么出现退出键
- 微信视频号主怎么发作品,如何在微信视频号上发作品