Есть ли способ исправить потерю значений True при вращении и смещении логических масок? - PullRequest
0 голосов
/ 28 марта 2019

Я использую логическую маску, когда я сдвигаю и поворачиваю ее, я теряю значения Нет истинных значений в маске и нет.ложных значений увеличивается. Я хочу, чтобы все мои истинные значения были равны даже после сдвига и поворота логической маски.Как я могу решить эту проблему?

import numpy as np
import scipy
from scipy import ndimage
import skimage
from skimage import draw

mask = skimage.draw.ellipsoid(12,14,25)

# padding the boolean array 

mask2 = np.pad(mask, pad_width = 50 , mode = 'constant')

# shifting the mask

shift1 = scipy.ndimage.shift(mask2, np.array([0,0,-25]))

# Rotating the shifted mask 

angle1 = 30
mask3 = scipy.ndimage.interpolation.rotate(shift1,angle1 , axes (0,2), reshape = False)

# Rotating the roated mask3 along different axis

angle2 = 45
mask4 = scipy.ndimage.interpolation.rotate(mask3, angle2 , axes = (0,1), reshape = False)

# Shapes of same mask after different operations

print np.argwhere(mask == True).shape

print np.argwhere(mask2 == True).shape

print np.argwhere(shift1 == True).shape

print np.argwhere(mask3 == True).shape

print np.argwhere(mask4 == True).shape

Таким образом, маска представляет собой эллипсоид в центре массива со всеми значениями True.Все значения вне этого эллипсоида ложны.На первом этапе я дополняю массив значениями False и увеличиваю его.Это не влияет на истинные значения, и я получаю то же самое нет.Истинных значений в mask2 как в mask.Второй шаг - это смещение mask2, когда мои истинные значения начинают исчезать. Почему?Как это можно исправить?В следующих двух шагах вращение моей сдвинутой маски даже понижает истинные значения.В основном к концу я теряю маску.Есть ли способ это исправить?

...