如何用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--math库Python math 库提供许多对浮点数python高斯函数代码的数学运算函数python高斯函数代码,math模块不支持复数运算,若需计算复数,可使用cmath模块(本文不赘述) 。
使用dir函数,查看math库中包含的所有内容:
1) math.pi# 圆周率π
2) math.e#自然对数底数
3) math.inf#正无穷大∞,-math.inf#负无穷大-∞
4) math.nan#非浮点数标记,NaN(not a number)
1) math.fabs(x)#表示X值的绝对值
2) math.fmod(x,y)#表示x/y的余数,结果为浮点数
3) math.fsum([x,y,z])#对括号内每个元素求和,其值为浮点数
4) math.ceil(x)#向上取整 , 返回不小于x的最小整数
5)math.floor(x)#向下取整,返回不大于x的最大整数
6) math.factorial(x)#表示X的阶乘,其中X值必须为整型,否则报错
7) math.gcd(a,b)#表示a,b的最大公约数
8)math.frexp(x)#x = i *2^j,返回(i,j)
9) math.ldexp(x,i)#返回x*2^i的运算值,为math.frexp(x)函数的反运算
10) math.modf(x)#表示x的小数和整数部分
11) math.trunc(x)#表示x值的整数部分
12) math.copysign(x,y)#表示用数值y的正负号 , 替换x值的正负号
13) math.isclose(a,b,rel_tol =x,abs_tol = y)#表示a , b的相似性,真值返回True,否则False;rel_tol是相对公差:表示a,b之间允许的最大差值,abs_tol是最小绝对公差,对比较接近于0有用,abs_tol必须至少为0 。
14) math.isfinite(x)#表示当x不为无穷大时,返回True , 否则返回False
15) math.isinf(x)#当x为±∞时,返回True,否则返回False
16) math.isnan(x)#当x是NaN , 返回True,否则返回False
1) math.pow(x,y)#表示x的y次幂
【包含python高斯函数代码的词条】 2) math.exp(x)#表示e的x次幂
3) math.expm1(x)#表示e的x次幂减1
4) math.sqrt(x)#表示x的平方根
5) math.log(x,base)#表示x的对数值,仅输入x值时 , 表示ln(x)函数
6) math.log1p(x)#表示1 x的自然对数值
7) math.log2(x)#表示以2为底的x对数值
8) math.log10(x)#表示以10为底的x的对数值
1) math.degrees(x)#表示弧度值转角度值
2) math.radians(x)#表示角度值转弧度值
3) math.hypot(x,y)#表示(x,y)坐标到原点(0,0)的距离
4) math.sin(x)#表示x的正弦函数值
5) math.cos(x)#表示x的余弦函数值
6) math.tan(x)#表示x的正切函数值
7)math.asin(x)#表示x的反正弦函数值
8) math.acos(x)#表示x的反余弦函数值
9) math.atan(x)#表示x的反正切函数值
10) math.atan2(y,x)#表示y/x的反正切函数值
11) math.sinh(x)#表示x的双曲正弦函数值
12) math.cosh(x)#表示x的双曲余弦函数值
13) math.tanh(x)#表示x的双曲正切函数值
14) math.asinh(x)#表示x的反双曲正弦函数值
15) math.acosh(x)#表示x的反双曲余弦函数值
16) math.atanh(x)#表示x的反双曲正切函数值
1)math.erf(x)#高斯误差函数
2) math.erfc(x)#余补高斯误差函数
3) math.gamma(x)#伽马函数(欧拉第二积分函数)
4) math.lgamma(x)#伽马函数的自然对数
2021-02-08 Python OpenCV GaussianBlur()函数borderType= None)函数
此函数利用高斯滤波器平滑一张图像 。该函数将源图像与指定的高斯核进行卷积 。
src:输入图像
ksize:(核的宽度,核的高度)python高斯函数代码,输入高斯核的尺寸python高斯函数代码,核的宽高都必须是正奇数 。否则python高斯函数代码 , 将会从参数sigma中计算得到 。
dst:输出图像 , 尺寸与输入图像一致 。
sigmaX:高斯核在X方向上的标准差 。
sigmaY:高斯核在Y方向上的标准差 。默认为None , 如果sigmaY=0,则它将被设置为与sigmaX相等的值 。如果这两者都为0,则它们的值会从ksize中计算得到 。计算公式为python高斯函数代码:
borderType:像素外推法,默认为None(参考官方文档 BorderTypes
)
在图像处理中,高斯滤波主要有两种方式:
1.窗口滑动卷积
2.傅里叶变换
在此主要利用窗口滑动卷积 。其中二维高斯函数公式为:
根据上述公式 , 生成一个3x3的高斯核,其中最重要的参数就是标准差,标准差越大,核中心的值与周围的值差距越小,曲线越平滑 。标准差越?。?核中心的值与周围的值差距越大,曲线越陡峭 。
从图像的角度来说 , 高斯核的标准差越大,平滑效果越不明显 。高斯核的标准差越小 , 平滑效果越明显 。
可见,标准差越大,图像平滑程度越大
参考博客1:关于GaussianBlur函数
参考博客2:关于高斯核运算
python将高斯坐标转换经纬度 经纬度坐标与高斯坐标的转换代码#网上搜来的
# 高斯坐标转经纬度算法 # B=大地坐标X # C=大地坐标Y# IsSix=6度带或3度带
import math
def GetLatLon2(B, C,IsSix):
#带号
D = math.trunc( C/ 1000000)
#中央经线(单位:弧度)
K = 0
if IsSix:
K = D * 6 - 3 #6度带计算
else:
K = D * 3 #3度带计算
L = B/(6378245*(1-0.006693421623)*1.0050517739)
M = L(0.00506237764 * math.sin(2*L)/2-0.00001062451*math.sin(4*L)/4 0.0000002081*math.sin(6*L)/6)/1.0050517739
N = L(0.00506237764 * math.sin(2*M)/2-0.00001062451*math.sin(4*M)/4 0.0000002081*math.sin(6*M)/6)/1.0050517739
O = L(0.00506237764 * math.sin(2*N)/2-0.00001062451*math.sin(4*N)/4 0.0000002081*math.sin(6*N)/6)/1.0050517739
P = L(0.00506237764 * math.sin(2*O)/2-0.00001062451*math.sin(4*O)/4 0.0000002081*math.sin(6*O)/6)/1.0050517739
Q = L(0.00506237764 * math.sin(2*P)/2-0.00001062451*math.sin(4*P)/4 0.0000002081*math.sin(6*P)/6)/1.0050517739
R = L(0.00506237764 * math.sin(2*Q)/2-0.00001062451*math.sin(4*Q)/4 0.0000002081*math.sin(6*Q)/6)/1.0050517739
S = math.tan(R)
T = 0.006738525415*(math.cos(R))**2
U = 6378245/math.sqrt(1-0.006693421623*(math.sin(R))**2)
V = 6378245*(1-0.006693421623)/(math.sqrt((1-0.006693421623*(math.sin(R))**2)))**3
W = 5 3*S**2 T-9*T*S**2
X = 61 90*S**2 45*S**4
Y = 1 2*S**2 T**2
Z = 5 28*S**2 24*S**4 6*T 8*T*S**2
Lat= (180/math.pi)*(R-(C-D*1000000-500000)**2*S/(2*V*U) (C-D*1000000-500000)**4*W/(24*U**3*V)-(C-D*1000000-500000)**6*X/(7200*U**5*V))
Lon= (180/math.pi)*(C-D*1000000-500000)*(1-(C-D*1000000-500000)**2*Y/(6*U**2) (C-D*1000000-500000)**4*Z/(120*U**4))/(U*math.cos(P))
Lat = Lat
Lon = KLon
return (Lon, Lat)
怎么用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)
%%生成指定均值和协方差矩阵python高斯函数代码的高斯数据
n=length(u);
c = chol(sigma_matrix);
X=randn(m,n);
Y=X*c ones(m,1)*u;
end
python高斯函数代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、python高斯函数代码的信息别忘了在本站进行查找喔 。
推荐阅读
- 西欧神话角色扮演游戏,西欧神话角色扮演游戏叫什么
- 视频号号流量怎么给,视频号如何增加流量
- 鸿蒙怎么把视频做桌面,鸿蒙设置视频为壁纸
- 珠海电脑直播设备公司电话,珠海电脑直播设备公司电话地址
- 怎么找到mysql对话框 mysql在哪打开
- 笔记本坏了怎么拆出硬盘,笔记本坏了怎么拆出硬盘
- 徐汇滨江可以拍摄什么,徐汇滨江景点
- 前海区块链平台,前海区块链平台招聘
- c语言open函数详解 c语言open