重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

关于python高斯函数代码的信息

python将高斯坐标转换经纬度 经纬度坐标与高斯坐标的转换代码

#网上搜来的

成都创新互联公司专注于企业成都营销网站建设、网站重做改版、永昌网站定制设计、自适应品牌网站建设、H5高端网站建设商城网站建设、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为永昌等各大城市提供网站开发制作服务。

# 高斯坐标转经纬度算法 # 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 = K + Lon

return (Lon, Lat)

2021-02-08 Python OpenCV GaussianBlur()函数

borderType= None)函数

此函数利用高斯滤波器平滑一张图像。该函数将源图像与指定的高斯核进行卷积。

src:输入图像

ksize:(核的宽度,核的高度),输入高斯核的尺寸,核的宽高都必须是正奇数。否则,将会从参数sigma中计算得到。

dst:输出图像,尺寸与输入图像一致。

sigmaX:高斯核在X方向上的标准差。

sigmaY:高斯核在Y方向上的标准差。默认为None,如果sigmaY=0,则它将被设置为与sigmaX相等的值。如果这两者都为0,则它们的值会从ksize中计算得到。计算公式为:

borderType:像素外推法,默认为None(参考官方文档 BorderTypes

)

在图像处理中,高斯滤波主要有两种方式:

1.窗口滑动卷积

2.傅里叶变换

在此主要利用窗口滑动卷积。其中二维高斯函数公式为:

根据上述公式,生成一个3x3的高斯核,其中最重要的参数就是标准差 ,标准差 越大,核中心的值与周围的值差距越小,曲线越平滑。标准差 越小,核中心的值与周围的值差距越大,曲线越陡峭。

从图像的角度来说,高斯核的标准差 越大,平滑效果越不明显。高斯核的标准差 越小,平滑效果越明显。

可见,标准差 越大,图像平滑程度越大

参考博客1:关于GaussianBlur函数

参考博客2:关于高斯核运算

怎么用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

python怎样做高斯拟合

需要载入numpy和scipy库,若需要做可视化还需要matplotlib(附加dateutil, pytz, pyparsing, cycler, setuptools库)。不画图就只要前两个。

如果没有这些库的话去 下载对应版本,之后解压到 C:\Python27\Lib\site-packages。

import numpy as np  

import pylab as plt  

#import matplotlib.pyplot as plt  

from scipy.optimize import curve_fit  

from scipy import asarray as ar,exp  

x = ar(range(10))  

y = ar([0,1,2,3,4,5,4,3,2,1])  

def gaussian(x,*param):  

return param[0]*np.exp(-np.power(x - param[2], 2.) / (2 * np.power(param[4], 2.)))+param[1]*np.exp(-np.power(x - param[3], 2.) / (2 * np.power(param[5], 2.)))  

popt,pcov = curve_fit(gaussian,x,y,p0=[3,4,3,6,1,1])  

print popt  

print pcov  

plt.plot(x,y,'b+:',label='data')  

plt.plot(x,gaussian(x,*popt),'ro:',label='fit')  

plt.legend()  

plt.show()


分享文章:关于python高斯函数代码的信息
路径分享:http://cqcxhl.com/article/hgsdog.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP