真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

包含二維高斯函數(shù)python的詞條

2021-02-08 Python OpenCV GaussianBlur()函數(shù)

borderType= None)函數(shù)

站在用戶的角度思考問題,與客戶深入溝通,找到欒城網(wǎng)站設計與欒城網(wǎng)站推廣的解決方案,憑借多年的經驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站建設、網(wǎng)站設計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、主機域名、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務覆蓋欒城地區(qū)。

此函數(shù)利用高斯濾波器平滑一張圖像。該函數(shù)將源圖像與指定的高斯核進行卷積。

src:輸入圖像

ksize:(核的寬度,核的高度),輸入高斯核的尺寸,核的寬高都必須是正奇數(shù)。否則,將會從參數(shù)sigma中計算得到。

dst:輸出圖像,尺寸與輸入圖像一致。

sigmaX:高斯核在X方向上的標準差。

sigmaY:高斯核在Y方向上的標準差。默認為None,如果sigmaY=0,則它將被設置為與sigmaX相等的值。如果這兩者都為0,則它們的值會從ksize中計算得到。計算公式為:

borderType:像素外推法,默認為None(參考官方文檔 BorderTypes

)

在圖像處理中,高斯濾波主要有兩種方式:

1.窗口滑動卷積

2.傅里葉變換

在此主要利用窗口滑動卷積。其中二維高斯函數(shù)公式為:

根據(jù)上述公式,生成一個3x3的高斯核,其中最重要的參數(shù)就是標準差 ,標準差 越大,核中心的值與周圍的值差距越小,曲線越平滑。標準差 越小,核中心的值與周圍的值差距越大,曲線越陡峭。

從圖像的角度來說,高斯核的標準差 越大,平滑效果越不明顯。高斯核的標準差 越小,平滑效果越明顯。

可見,標準差 越大,圖像平滑程度越大

參考博客1:關于GaussianBlur函數(shù)

參考博客2:關于高斯核運算

如何生成二維高斯與 Python

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

I=M?F+(1?M)?B

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

I=M?F

這里介紹一下高斯分布蒙版的特性,并且用Python實現(xiàn)。

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

亮度的范圍從 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 循環(huán) 實現(xiàn)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)# 直接利用矩陣運算實現(xiàn)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()

高斯模糊

參考文獻:阮一峰的網(wǎng)絡日志

通常,圖像處理軟件會提供"模糊"(blur)濾鏡,使圖片產生模糊的效果。

"模糊"的算法有很多種,其中有一種叫做 "高斯模糊" (Gaussian Blur)。它將 正態(tài)分布 (又名"高斯分布")用于圖像處理。

本文介紹"高斯模糊"的算法,你會看到這是一個非常簡單易懂的算法。本質上,它是一種 數(shù)據(jù)平滑技術 (data smoothing),適用于多個場合,圖像處理恰好提供了一個直觀的應用實例。

一、高斯模糊的原理

所謂"模糊",可以理解成每一個像素都取周邊像素的平均值。

上圖中,2是中間點,周邊點都是1。

"中間點"取"周圍點"的平均值,就會變成1。在數(shù)值上,這是一種"平滑化"。在圖形上,就相當于產生"模糊"效果,"中間點"失去細節(jié)。

顯然,計算平均值時,取值范圍越大,"模糊效果"越強烈。

上面分別是原圖、模糊半徑3像素、模糊半徑10像素的效果。模糊半徑越大,圖像就越模糊。從數(shù)值角度看,就是數(shù)值越平滑。

接下來的問題就是,既然每個點都要取周邊像素的平均值,那么應該如何分配權重呢?

如果使用簡單平均,顯然不是很合理,因為圖像都是連續(xù)的,越靠近的點關系越密切,越遠離的點關系越疏遠。因此,加權平均更合理,距離越近的點權重越大,距離越遠的點權重越小。

二、正態(tài)分布的權重

正態(tài)分布顯然是一種可取的權重分配模式。

在圖形上,正態(tài)分布是一種鐘形曲線,越接近中心,取值越大,越遠離中心,取值越小。

計算平均值的時候,我們只需要將"中心點"作為原點,其他點按照其在正態(tài)曲線上的位置,分配權重,就可以得到一個加權平均值。

三、高斯函數(shù)

上面的正態(tài)分布是一維的,圖像都是二維的,所以我們需要二維的正態(tài)分布。

正態(tài)分布的密度函數(shù)叫做 "高斯函數(shù)" (Gaussian function)。它的一維形式是:

[圖片上傳失敗...(image-930400-1530695631723)]

其中,μ是x的均值,σ是x的方差。因為計算平均值的時候,中心點就是原點,所以μ等于0。

[圖片上傳失敗...(image-b4ad84-1530695631723)]

根據(jù)一維高斯函數(shù),可以推導得到二維高斯函數(shù):

[圖片上傳失敗...(image-24fac0-1530695631723)]

有了這個函數(shù) ,就可以計算每個點的權重了。

四、權重矩陣

假定中心點的坐標是(0,0),那么距離它最近的8個點的坐標如下:

更遠的點以此類推。

為了計算權重矩陣,需要設定σ的值。假定σ=1.5,則模糊半徑為1的權重矩陣如下:

這9個點的權重總和等于0.4787147,如果只計算這9個點的加權平均,還必須讓它們的權重之和等于1,因此上面9個值還要分別除以0.4787147,得到最終的權重矩陣。

五、計算高斯模糊

有了權重矩陣,就可以計算高斯模糊的值了。

假設現(xiàn)有9個像素點,灰度值(0-255)如下:

每個點乘以自己的權重值:

得到

將這9個值加起來,就是中心點的高斯模糊的值。

對所有點重復這個過程,就得到了高斯模糊后的圖像。如果原圖是彩色圖片,可以對RGB三個通道分別做高斯模糊。

六、邊界點的處理

如果一個點處于邊界,周邊沒有足夠的點,怎么辦?

一個變通方法,就是把已有的點拷貝到另一面的對應位置,模擬出完整的矩陣。

七、參考文獻

怎么用python表示出二維高斯分布函數(shù),mu表示均值,sigma表示協(xié)方差矩陣,x表示數(shù)據(jù)點

clear?

close?all

%%%%%%%%%%%%%%%%%%%%%%%%%生成實驗數(shù)據(jù)集

rand('state',0)

sigma_matrix1=eye(2);

sigma_matrix2=50*eye(2);

u1=[0,0];

u2=[30,30];

m1=100;

m2=300;%樣本數(shù)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sm1數(shù)據(jù)集

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數(shù)據(jù)集')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sm2數(shù)據(jù)集

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數(shù)據(jù)集')

end

function?Y?=?multivrandn(u,m,sigma_matrix)

%%生成指定均值和協(xié)方差矩陣的高斯數(shù)據(jù)

n=length(u);

c?=?chol(sigma_matrix);

X=randn(m,n);

Y=X*c+ones(m,1)*u;

end


新聞標題:包含二維高斯函數(shù)python的詞條
文章源于:http://weahome.cn/article/hspjpg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部