code: def dpsr_degradation(x, k, sf=3):
      """bicubic downsampling + blur
      Args:
          x: HxWxC image, [0, 1]
          k: hxw, double
          sf: down-scale factor
      Return:
          downsampled LR image
      Reference:
          @inproceedings{zhang2019deep,
            title={Deep Plug-and-Play Super-Resolution for Arbitrary Blur Kernels},
            author={Zhang, Kai and Zuo, Wangmeng and Zhang, Lei},
            booktitle={IEEE Conference on Computer Vision and Pattern Recognition},
            pages={1671--1681},
            year={2019}
          }
      """
      x = bicubic_degradation(x, sf=sf)
      x = ndimage.convolve(x, np.expand_dims(k, axis=2), mode="wrap")
      return x
  
imports: import random
  from functools import partial
  import albumentations
  import cv2
  import ldm.modules.image_degradation.utils_image
  import numpy
  import scipy
  import scipy.stats
  import torch
  from scipy import ndimage
  from scipy.interpolate import interp2d
  from scipy.linalg import orth
label_desc: Use image node_id 13 for calling a global function with example usage: dpsr_degradation(x, k, sf) and returns: x