code: '''
  def warper(img, src, dst):
  
      # Compute and apply perpective transform
      img_size = (img.shape[1], img.shape[0])
      M = cv2.getPerspectiveTransform(src, dst)
      warped = cv2.warpPerspective(img, M, img_size, flags=cv2.INTER_NEAREST)  # keep same size as input image
  
      return warped
  '''
  
  import numpy as np
  import cv2
  import glob
  import matplotlib.pyplot as plt
  #%matplotlib qt
  
  # prepare object points, like (0,0,0), (1,0,0), (2,0,0) ....,(6,5,0)
  objp = np.zeros((6*9,3), np.float32)
  objp[:,:2] = np.mgrid[0:9,0:6].T.reshape(-1,2)
  
  # Arrays to store object points and image points from all the images.
  objpoints = [] # 3d points in real world space
  imgpoints = [] # 2d points in image plane.
  
  # Make a list of calibration images
  images = glob.glob('../camera_cal/*.jpg')
  
  # Step through the list and search for chessboard corners
  for fname in images:
      img = cv2.imread(fname)
      gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
  
      # Find the chessboard corners
      ret, corners = cv2.findChessboardCorners(gray, (9,6),None)
  
      # If found, add object points, image points
      if ret == True:
          objpoints.append(objp)
          imgpoints.append(corners)
  
          # Draw and display the corners
          img = cv2.drawChessboardCorners(img, (9,6), corners, ret)
          cv2.imshow('img',img)
          cv2.waitKey(30)
  
  cv2.destroyAllWindows()
apis: numpy.zeros