Source code for pytomography.utils.filters
import pytomography
import torch
import numpy as np
[docs]class HammingFilter:
def __init__(self, wl, wh):
self.wl = wl/2 # units of Nyquist Frequency
self.wh = wh/2
[docs] def __call__(self, w):
w = w.cpu().numpy()
filter = np.piecewise(
w,
[np.abs(w)<=self.wl, (self.wl<np.abs(w))*(self.wh>=np.abs(w)), np.abs(w)>self.wh],
[lambda w: 1, lambda w: 1/2*(1+np.cos(np.pi*(np.abs(w)-self.wl)/(self.wh-self.wl))), lambda w: 0])
return torch.tensor(filter).to(pytomography.device)