code: def get_filter(theta, sigma=1.0, filter_size=9):
      x = np.arange(-filter_size // 2 + 1, filter_size // 2 + 1)
      g = np.array([np.exp(-(x**2) / (2 * sigma**2))])
      gp = np.array(
          [-(x / sigma) * np.exp(-(x**2) / (2 * sigma**2))]
      )
  
      gt_filter = np.matmul(g.T, gp)
      gt_filter = (
          np.cos(theta) * gt_filter + np.sin(theta) * gt_filter.T
      )
  
      return gt_filter
  
imports: import argparse
  import multiprocessing
  import numpy
  import cv2
  import tensorflow
  from scipy.signal import convolve2d
  from tensorpack import *
  from tensorpack.dataflow import dataset
  from tensorpack.utils import logger
  from tensorpack.utils.gpu import change_gpu
  from tensorpack.utils.argtools import shape2d, shape4d
  from tensorpack.utils.viz import *
label_desc: Use image node_id 1 for calling the ThetaImages obj's underlying member method code with example usage: obj.get_filter(theta, sigma, filter_size) and returns: gt_filter