class_docstr: Use Parzen windowing in the discrete case to estimate the
  distribution model
class_docstr_tok: ["Use","Parzen","windowing","in","the","discrete","case","to","estimate","the","distribution","model"]
code: def loss(self, H):
      if not hasattr(self, "sigma"):
          self.sigma = SIGMA_FACTOR * np.array(H.shape)
      Hs = gaussian_filter(H, sigma=self.sigma, mode="constant")
      Hs /= nonzero(Hs.sum())
      return dist2loss(Hs)
  
imports: import numpy
  from scipy.ndimage import gaussian_filter
  from ._registration import _L1_moments
label_desc: Use image node_id 1 for calling the DiscreteParzenMutualInformation obj's underlying member method code with example usage: obj.loss(H) and returns: dist2loss