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

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

python畫圖高斯函數(shù)的簡單介紹

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

borderType= None)函數(shù)

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),昂昂溪企業(yè)網(wǎng)站建設(shè),昂昂溪品牌網(wǎng)站建設(shè),網(wǎng)站定制,昂昂溪網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,昂昂溪網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

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

src:輸入圖像

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

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

sigmaX:高斯核在X方向上的標(biāo)準(zhǔn)差。

sigmaY:高斯核在Y方向上的標(biāo)準(zhǔn)差。默認(rèn)為None,如果sigmaY=0,則它將被設(shè)置為與sigmaX相等的值。如果這兩者都為0,則它們的值會從ksize中計(jì)算得到。計(jì)算公式為:

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

)

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

1.窗口滑動卷積

2.傅里葉變換

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

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

從圖像的角度來說,高斯核的標(biāo)準(zhǔn)差 越大,平滑效果越不明顯。高斯核的標(biāo)準(zhǔn)差 越小,平滑效果越明顯。

可見,標(biāo)準(zhǔn)差 越大,圖像平滑程度越大

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

參考博客2:關(guān)于高斯核運(yùn)算

如何生成二維高斯與 Python

在圖像處理以及圖像特效中,經(jīng)常會用到一種成高斯分布的蒙版,蒙版可以用來做圖像融合,將不同內(nèi)容的兩張圖像結(jié)合蒙版,可以營造不同的藝術(shù)效果。

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

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

I=M?F

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

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

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

G(i,j)=exp?d2R

其中?i,j?表示圖像上任何一點(diǎn)的坐標(biāo),以左上角為坐標(biāo)原點(diǎn),d?表示 圖像上任何一點(diǎn) 到圖像中心點(diǎn)的距離,R?表示圖像的半徑。假設(shè)圖像的高為?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) 實(shí)現(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)# 直接利用矩陣運(yùn)算實(shí)現(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()

如何用python實(shí)現(xiàn)圖像的一維高斯濾波器

如何用python實(shí)現(xiàn)圖像的一維高斯濾波器

現(xiàn)在把卷積模板中的值換一下,不是全1了,換成一組符合高斯分布的數(shù)值放在模板里面,比如這時中間的數(shù)值最大,往兩邊走越來越小,構(gòu)造一個小的高斯包。實(shí)現(xiàn)的函數(shù)為cv2.GaussianBlur()。對于高斯模板,我們需要制定的是高斯核的高和寬(奇數(shù)),沿x與y方向的標(biāo)準(zhǔn)差(如果只給x,y=x,如果都給0,那么函數(shù)會自己計(jì)算)。高斯核可以有效的出去圖像的高斯噪聲。當(dāng)然也可以自己構(gòu)造高斯核,相關(guān)函數(shù):cv2.GaussianKernel().

import cv2

import numpy as np

import matplotlib.pyplot as plt

img = cv2.imread(‘flower.jpg‘,0) #直接讀為灰度圖像

for i in range(2000): #添加點(diǎn)噪聲

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‘)#默認(rèn)彩色,另一種彩色bgr

plt.subplot(1,2,2),plt.imshow(blur,‘gray‘)

python怎樣做高斯擬合

需要載入numpy和scipy庫,若需要做可視化還需要matplotlib(附加dateutil,?pytz,?pyparsing,?cycler,?setuptools庫)。不畫圖就只要前兩個。

如果沒有這些庫的話去 下載對應(yīng)版本,之后解壓到 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表示出二維高斯分布函數(shù),mu表示均值,sigma表示協(xié)方差矩陣,x表示數(shù)據(jù)點(diǎn)

clear?

close?all

%%%%%%%%%%%%%%%%%%%%%%%%%生成實(shí)驗(yàn)數(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


網(wǎng)頁標(biāo)題:python畫圖高斯函數(shù)的簡單介紹
URL標(biāo)題:http://weahome.cn/article/hcssdj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部