code: def denormalize3D(self, data, which="scale"):
      if self.gt_testset is None:
          self.gt_testset = self.real_read("test")
  
      if which == "scale":
          data = data.reshape((-1, 17, 3)).copy()
          for idx, item in enumerate(self.gt_testset):
              camera_name = item["camera_param"]["name"]
              if camera_name == "54138969" or camera_name == "60457274":
                  res_w, res_h = 1000, 1002
              elif (
                  camera_name == "55011271" or camera_name == "58860488"
              ):
                  res_w, res_h = 1000, 1000
              else:
                  assert 0, (
                      "%d data item has an invalid camera name" % idx
                  )
              if idx < len(data):
                  data[idx, :, :2] = (
                      (data[idx, :, :2] + [1, res_h / res_w])
                      * res_w
                      / 2
                  )
                  data[idx, :, 2:] = data[idx, :, 2:] * res_w / 2
              else:
                  break
      else:
          assert 0
      return data
  
file_path: TensorLayer/tensorlayer/app/human_pose_estimation/common.py
imports: import tensorflow
  import numpy
  import pickle
  import matplotlib.pyplot
  import os
  import matplotlib.gridspec
label_desc: Use image node_id 5 for calling the DataReader obj's underlying member method code with example usage: obj.denormalize3D(data, which) and returns: data