title: contour for ID card
body: <p>i'm trying to detect contour for ID card but it never work; 
  I tried with the four_point_transform, boundingrect,boundries,active_contours,hough transform and also the same result , the contour with be used to scan just the id card .
  the id looks like that : <a href="https://i.stack.imgur.com/f7qWx.png" rel="nofollow noreferrer">here</a>
      This is how the code looks like:</p>
  
  <pre><code> from trans import four_point_transform
  from skimage.filters import threshold_local
  import numpy as np
  import cv2
  import imutils
  
  def edgeDetection(image):        
      gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
      gray = cv2.GaussianBlur(image, (5, 5), 0)
      edged = cv2.Canny(gray, 200,150 )
      return edged
  
  def detectrectarrondi(image,edged):        
      orig = image.copy()
      gray = cv2.cvtColor(orig, cv2.COLOR_BGR2GRAY)
      edged = cv2.Canny(gray, 50, 40)
      orig_edged = edged.copy()
  
      (_,contours, _) = cv2.findContours(orig_edged, cv2.RETR_LIST, cv2.CHAIN_APPROX_NONE)
      contours = sorted(contours, key=cv2.contourArea, reverse=True)
  
      for contour in contours:
          c = max(contours, key = cv2.contourArea)
          (x,y,w,h) = cv2.boundingRect(c)
          screen = cv2.rectangle(image, (x,y), (x+w,y+h), (0,255,0), 2)
          return screen              
  
  def scan(screen,image):
      ratio = image.shape[0] / 500.0
      warped = four_point_transform(image, screen.reshape(4, 2) * ratio)
      warped= cv2.cvtColor(warped, cv2.COLOR_BGR2GRAY)
      T = threshold_local(warped, 11, offset = 10, method = "gaussian")
      warped = (warped &gt; T).astype("uint8") * 255
  
      return warped  
  </code></pre>