第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何將圓盤(pán)形蒙版應(yīng)用于NumPy陣列?

如何將圓盤(pán)形蒙版應(yīng)用于NumPy陣列?

我有一個(gè)像這樣的數(shù)組:>>> np.ones((8,8))array([[ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.],       [ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.],       [ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.],       [ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.],       [ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.],       [ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.],       [ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.],       [ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.]])我正在創(chuàng)建半徑為3的圓盤(pán)形蒙版:y,x = np.ogrid[-3: 3+1, -3: 3+1]mask = x**2+y**2 <= 3**2這給出:>> maskarray([[False, False, False,  True, False, False, False],       [False,  True,  True,  True,  True,  True, False],       [False,  True,  True,  True,  True,  True, False],       [ True,  True,  True,  True,  True,  True,  True],       [False,  True,  True,  True,  True,  True, False],       [False,  True,  True,  True,  True,  True, False],       [False, False, False,  True, False, False, False]], dtype=bool)現(xiàn)在,我希望能夠使用任何元素作為中心點(diǎn)將此蒙版應(yīng)用于我的數(shù)組。因此,例如,以中心點(diǎn)為(1,1),我想要一個(gè)像這樣的數(shù)組:>>> new_arrarray([[ True,  True,  True,  True,    1.,  1.,  1.,  1.],       [ True,  True,  True,  True,  True,  1.,  1.,  1.],       [ True,  True,  True,  True,    1.,  1.,  1.,  1.],       [ True,  True,  True,  True,    1.,  1.,  1.,  1.],       [ 1.,    True,    1.,    1.,    1.,  1.,  1.,  1.],       [ 1.,      1.,    1.,    1.,    1.,  1.,  1.,  1.],       [ 1.,      1.,    1.,    1.,    1.,  1.,  1.,  1.],       [ 1.,      1.,    1.,    1.,    1.,  1.,  1.,  1.]])有沒(méi)有簡(jiǎn)單的方法可以使用此面膜?
查看完整描述

3 回答

?
慕田峪9158850

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊

您可以使用scipy的卷積函數(shù),該函數(shù)的好處是可以一次將任何特定的遮罩(即內(nèi)核)放置在數(shù)組中任意數(shù)量的給定坐標(biāo)上:


import numpy as np

from scipy.ndimage.filters import convolve

首先創(chuàng)建一個(gè)坐標(biāo)數(shù)組,其中將您希望遮罩(內(nèi)核)居中的位置的坐標(biāo)標(biāo)記為2


background = np.ones((10,10))

background[5,5] = 2

print(background)


[[ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]

 [ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]

 [ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]

 [ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]

 [ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]

 [ 1.  1.  1.  1.  1.  2.  1.  1.  1.  1.]

 [ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]

 [ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]

 [ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]

 [ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]]

創(chuàng)建您的面具:


y,x = np.ogrid[-3: 3+1, -3: 3+1]

mask = x**2+y**2 <= 3**2

mask = 254*mask.astype(float)

print(mask)


[[   0.    0.    0.  254.    0.    0.    0.]

 [   0.  254.  254.  254.  254.  254.    0.]

 [   0.  254.  254.  254.  254.  254.    0.]

 [ 254.  254.  254.  254.  254.  254.  254.]

 [   0.  254.  254.  254.  254.  254.    0.]

 [   0.  254.  254.  254.  254.  254.    0.]

 [   0.    0.    0.  254.    0.    0.    0.]]

卷積兩個(gè)圖像:


b = convolve(background, mask)-sum(sum(mask))+1

print(b)


[[   1.    1.    1.    1.    1.    1.    1.    1.    1.    1.]

 [   1.    1.    1.    1.    1.    1.    1.    1.    1.    1.]

 [   1.    1.    1.    1.    1.  255.    1.    1.    1.    1.]

 [   1.    1.    1.  255.  255.  255.  255.  255.    1.    1.]

 [   1.    1.    1.  255.  255.  255.  255.  255.    1.    1.]

 [   1.    1.  255.  255.  255.  255.  255.  255.  255.    1.]

 [   1.    1.    1.  255.  255.  255.  255.  255.    1.    1.]

 [   1.    1.    1.  255.  255.  255.  255.  255.    1.    1.]

 [   1.    1.    1.    1.    1.  255.    1.    1.    1.    1.]

 [   1.    1.    1.    1.    1.    1.    1.    1.    1.    1.]]

請(qǐng)注意,卷積函數(shù)項(xiàng)不會(huì)上下班,即convolve(a,b)!= convolve(b,a)


還要注意,如果您的點(diǎn)在邊緣附近,則算法不會(huì)在坐標(biāo)處重現(xiàn)內(nèi)核。為了解決這個(gè)問(wèn)題,您可以使用內(nèi)核的最大軸填充背景,應(yīng)用卷積,然后刪除填充。


現(xiàn)在,您可以將任何內(nèi)核映射到數(shù)組中任意數(shù)量的點(diǎn),但是請(qǐng)注意,如果兩個(gè)內(nèi)核重疊,則它們會(huì)在重疊處相加。您可以根據(jù)需要設(shè)置閾值。


查看完整回答
反對(duì) 回復(fù) 2019-09-24
  • 3 回答
  • 0 關(guān)注
  • 753 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)