導航:首頁 > 編程語言 > python鍾形高斯函數的計算

python鍾形高斯函數的計算

發布時間:2022-07-03 08:37:30

『壹』 如何生成二維高斯與 python

在圖像處理以及圖像特效中,經常會用到一種成高斯分布的蒙版,蒙版可以用來做圖像融合,將不同內容的兩張圖像結合蒙版,可以營造不同的藝術效果。

I=M∗F+(1−M)∗B

這里I表示合成後的圖像,F表示前景圖,B表示背景圖,M表示蒙版,或者直接用 蒙版與圖像相乘, 形成一種漸變映射的效果。如下所示。

I=M∗F

這里介紹一下高斯分布蒙版的特性,並且用Python實現。

高斯分布的蒙版,簡單來說,就是一個從中心擴散的亮度分布圖,如下所示:

亮度的范圍從 1 到 0, 從中心到邊緣逐漸減弱,中心的亮度值最高為1,邊緣的亮度值最低為 0. 圖像上任何一點的亮度值為:

G(i,j)=exp−d2R

其中i,j表示圖像上任何一點的坐標,以左上角為坐標原點,d表示 圖像上任何一點 到圖像中心點的距離,R表示圖像的半徑。假設圖像的高為H寬為W

R=(H/2)2+(W/2)2−−−−−−−−−−−−−−√=12H2+W2−−−−−−−−√

d=(i−H/2)2+(j−W/2)2−−−−−−−−−−−−−−−−−−−√

IMAGE_WIDTH = 512IMAGE_HEIGHT = 392center_x = IMAGE_WIDTH/2center_y = IMAGE_HEIGHT/2R = np.sqrt(center_x**2 + center_y**2)Gauss_map = np.zeros((IMAGE_HEIGHT, IMAGE_WIDTH))# 利用 for 循環 實現for i in range(IMAGE_HEIGHT):
for j in range(IMAGE_WIDTH):
dis = np.sqrt((i-center_y)**2+(j-center_x)**2)
Gauss_map[i, j] = np.exp(-0.5*dis/R)# 直接利用矩陣運算實現mask_x = np.matlib.repmat(center_x, IMAGE_HEIGHT, IMAGE_WIDTH)mask_y = np.matlib.repmat(center_y, IMAGE_HEIGHT, IMAGE_WIDTH)x1 = np.arange(IMAGE_WIDTH)x_map = np.matlib.repmat(x1, IMAGE_HEIGHT, 1)y1 = np.arange(IMAGE_HEIGHT)y_map = np.matlib.repmat(y1, IMAGE_WIDTH, 1)y_map = np.transpose(y_map)Gauss_map = np.sqrt((x_map-mask_x)**2+(y_map-mask_y)**2)Gauss_map = np.exp(-0.5*Gauss_map/R)# 顯示和保存生成的圖像plt.figure()
plt.imshow(Gauss_map, plt.cm.gray)
plt.imsave('out_2.jpg', Gauss_map, cmap=plt.cm.gray)
plt.show()

『貳』 高斯函數基本求解方法

性質: [x]≤x<[x]+1 x-1<[x] ≤x [n+x]=n+[x],n為整數
解方程時一般將x分成 [x] + {χ}(0≤{x}<1) O(∩_∩)O望採納~~要是不懂可繼續追問哦

『叄』 高斯函數公式

高斯函數公式:f(x)=d*ad。高斯函數以大數學家約翰·卡爾·弗里德里希·高斯的名字命名。高斯函數應用范圍很廣,在自然科學、社會科學、數學以及工程學等領域都能看到它的身影。
函數(function)的定義通常分為傳統定義和近代定義,函數的兩個定義本質是相同的,只是敘述概念的出發點不同,傳統定義是從運動變化的觀點出發,而近代定義是從集合、映射的觀點出發。

『肆』 怎麼用python表示出二維高斯分布函數,mu表示均值,sigma表示協方差矩陣,x表示數據點

clear
closeall
%%%%%%%%%%%%%%%%%%%%%%%%%生成實驗數據集

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')
holdon
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')
holdon
scatter(Y22(:,1),Y22(:,2),'r*')
scatter(Y33(:,1),Y33(:,2),'go')
scatter(Y44(:,1),Y44(:,2),'c*')
title('SM2數據集')
end
functionY=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怎麼給函數加上高斯雜訊

mu=0
sigma=0.12
X[i]+=random.gauss(mu,sigma)

『陸』 怎麼用python計算高斯定律

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

# -*- coding: utf-8 -*-
"""
Created on Tue Mar 08 16:16:36 2016

@author: SumaiWong
"""

import numpy as np
import pandas as pd
from numpy import dot
from numpy.linalg import inv

iris = pd.read_csv('D:\iris.csv')
mmy = pd.get_mmies(iris['Species']) # 對Species生成啞變數
iris = pd.concat([iris, mmy], axis =1 )
iris = iris.iloc[0:100, :] # 截取前一百行樣本

X = iris.ix[:, 0:4]
Y = iris['setosa'].reshape(len(iris), 1) #整理出X矩陣 和 Y矩陣

def GDA(Y, X):
theta1 = Y.mean() #類別1的比例
theta0 = 1-Y.mean() #類別2的比例
mu1 = X[Y==1].mean() #類別1特徵的均值向量
mu0 = X[Y==0].mean() #類別2特徵的均值向量

X_1 = X[Y==1]
X_0 = X[Y==0]
A = dot(X_1.T, X_1) - len(Y[Y==1])*dot(mu1.reshape(4,1), mu1.reshape(4,1).T)
B = dot(X_0.T, X_0) - len(Y[Y==0])*dot(mu0.reshape(4,1), mu0.reshape(4,1).T)
sigma = (A+B)/len(X) #sigma = X'X-n(X.bar)X.bar'=X'[I-1/n 1 1]X
return theta1, theta0, mu1, mu0, sigma

『柒』 如何用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做科學計算的特點:1. 科學庫很全。(推薦學習:Python視頻教程)
科學庫:numpy,scipy。作圖:matplotpb。並行:mpi4py。調試:pdb。
2. 效率高。
如果你能學好numpy(array特性,f2py),那麼你代碼執行效率不會比fortran,C差太多。但如果你用不好array,那樣寫出來的程序效率就只能呵呵了。所以入門後,請一定花足夠多的時間去了解numpy的array類。
3. 易於調試。
pdb是我見過最好的調試工具,沒有之一。直接在程序斷點處給你一個截面,這只有文本解釋語言才能辦到。毫不誇張的說,你用python開發程序只要fortran的1/10時間。
4. 其他。
它豐富而且統一,不像C++的庫那麼雜(好比pnux的各種發行版),python學好numpy就可以做科學計算了。python的第三方庫很全,但是不雜。python基於類的語言特性讓它比起fortran等更加容易規模化開發。
數值分析中,龍格-庫塔法(Runge-Kutta methods)是用於非線性常微分方程的解的重要的一類隱式或顯式迭代法。這些技術由數學家卡爾·龍格和馬丁·威爾海姆·庫塔於1900年左右發明。
龍格-庫塔(Runge-Kutta)方法是一種在工程上應用廣泛的高精度單步演算法,其中包括著名的歐拉法,用於數值求解微分方程。由於此演算法精度高,採取措施對誤差進行抑制,所以其實現原理也較復雜。
高斯積分是在概率論和連續傅里葉變換等的統一化等計算中有廣泛的應用。在誤差函數的定義中它也出現。雖然誤差函數沒有初等函數,但是高斯積分可以通過微積分學的手段解析求解。高斯積分(Gaussian integral),有時也被稱為概率積分,是高斯函數的積分。它是依德國數學家兼物理學家卡爾·弗里德里希·高斯之姓氏所命名。
洛倫茨吸引子及其導出的方程組是由愛德華·諾頓·洛倫茨於1963年發表,最初是發表在《大氣科學雜志》(Journal of the Atmospheric Sciences)雜志的論文《Deterministic Nonperiodic Flow》中提出的,是由大氣方程中出現的對流卷方程簡化得到的。
這一洛倫茨模型不只對非線性數學有重要性,對於氣候和天氣預報來說也有著重要的含義。行星和恆星大氣可能會表現出多種不同的准周期狀態,這些准周期狀態雖然是完全確定的,但卻容易發生突變,看起來似乎是隨機變化的,而模型對此現象有明確的表述。
更多Python相關技術文章,請訪問Python教程欄目進行學習!以上就是小編分享的關於python能做什麼科學計算的詳細內容希望對大家有所幫助,更多有關python教程請關注環球青藤其它相關文章!

『玖』 如何用python實現圖像的一維高斯濾波

如何用python實現圖像的一維高斯濾波
建議你不要使用高斯濾波。
推薦你使用一維中值濾波
matlab的函數為
y = medfilt1(x,n);
x為數組,是你要處理原始波形,n是中值濾波器的參數(大於零的整數)。y是濾波以後的結果(是數組)
後面再
plot(y);
就能看到濾波以後的結果
經過medfilt1過濾以後,y里儲存的是低頻的波形,如果你需要高頻波形,x-y就是高頻波形
順便再說一點,n是偶數的話,濾波效果比較好。
N越小,y里包含的高頻成分就越多,y越大,y里包含的高頻成分就越少。
記住,無論如何y里保存的都是整體的低頻波。(如果你看不懂的話,濾一下,看y波形,你馬上就懂了)

『拾』 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 = K + Lon
return (Lon, Lat)

閱讀全文

與python鍾形高斯函數的計算相關的資料

熱點內容
圓命令畫法 瀏覽:303
如果給電腦e盤文件加密 瀏覽:799
javaswing項目 瀏覽:773
androidsdksetup 瀏覽:1001
pdf怎麼設置中文 瀏覽:124
安卓手機用什麼軟體看倫敦金 瀏覽:962
魅族文件夾無名稱 瀏覽:787
蘇黎世無人機演算法 瀏覽:871
核桃編程和小碼王的融資 瀏覽:681
微積分教材pdf 瀏覽:723
寫python給微信好友發消息 瀏覽:336
蚊帳自營米加密 瀏覽:418
學校推薦核桃編程 瀏覽:802
湖南農信app怎麼導明細 瀏覽:471
福特abs編程 瀏覽:506
如何自學安卓手機 瀏覽:437
以太坊源碼共識機制 瀏覽:910
單片機探測器 瀏覽:870
demo編程大賽作品怎麼運行 瀏覽:51
學歷提升用什麼手機軟體App 瀏覽:938