text: # Import the modules
  import cv2
  import joblib
  from skimage.feature import hog
  import numpy as np
  
  # Load the classifier
  clf = joblib.load("myclassifier.pkl")
  
  # Read the input image
  im = cv2.imread("image.jpg")
  
  # Convert to grayscale and apply Gaussian filtering
  im_gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
  im_gray = cv2.GaussianBlur(im_gray, (5, 5), 0)
  
  # cv2.imshow('Hello',im_gray)
  # cv2.waitKey(0)
  # cv2.destroyAllWindows()
  
  # Threshold the image
  ret, im_th = cv2.threshold(im_gray, 90, 255, cv2.THRESH_BINARY_INV)
  
  # Find contours in the image
  ctrs, hier = cv2.findContours(im_th.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[-2:]
  
  
  cv2.drawContours(im, ctrs, -1, (0, 255, 0), 3)
  
  cv2.imshow('Contours', im)
  cv2.waitKey(0)
  cv2.destroyAllWindows()
  
  # Get rectangles contains each contour
  rects = [cv2.boundingRect(ctr) for ctr in ctrs]
  
  # For each rectangular region, calculate HOG features and predict the digit using Linear SVM.
  for rect in rects:
      # Draw the rectangles
      cv2.rectangle(im, (rect[0], rect[1]), (rect[0] + rect[2], rect[1] + rect[3]), (0, 255, 0), 5)
      # Make the rectangular region around the digit
      leng = int(rect[3] * 1.6)
      pt1 = abs(int(rect[1] + rect[3] // 2 - leng // 2))
      pt2 = abs(int(rect[0] + rect[2] // 2 - leng // 2))
      roi = im_th[pt1:pt1 + leng, pt2:pt2 + leng]
      # Resize the image
      if roi.any():
          roi = cv2.resize(roi, (28, 28), interpolation=cv2.INTER_AREA)
          roi = cv2.dilate(roi, (3, 3))
      # Calculate the HOG features
      roi_hog_fd = hog(roi, orientations=9, pixels_per_cell=(14, 14), cells_per_block=(1, 1), visualize=False)
      nbr = clf.predict(np.array([roi_hog_fd], 'float64'))
      cv2.putText(im, str(int(nbr[0])), (rect[0], rect[1]), cv2.FONT_HERSHEY_DUPLEX, 2, (0, 255, 255), 3)
  
  # Display image with output text
  cv2.imshow("Number", im)
  cv2.waitKey(0)
  cv2.destroyAllWindows()
  