title: cv2 Assertion failed error, p.checkVector(2, CV_32S) issues with FillPoly
body: <p>Thank you for looking into this, I have a python script for lane detection using cv2, it seems a cv2 function is causing the following error.</p>
  <blockquote>
  <p>cv2.error: OpenCV(4.5.1) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-r2ue8w6k\opencv\modules\imgproc\src\drawing.cpp:2395: error: (-215:Assertion failed) p.checkVector(2, CV_32S) &gt;= 0 in function 'cv::fillPoly'</p>
  </blockquote>
  <p>when I run the below code</p>
  <pre><code>import cv2
  import numpy as np
  import matplotlib.pyplot as plt
  from numpy.lib.twodim_base import tri
  
  image = cv2.imread('Lane1-a.jpg')
  
  class ImageProcess:
      image_height =0
      image_width = 0
  
      def __init__(self,image):
          self.image_height =  image.shape[0]
          self.image_width = image.shape[1]
      
      def Preprocess(self,image):
          copy = self.GetCopy(image)
          gray = self.GetGrayScale(copy)
          blur = cv2.GaussianBlur(gray,(5,5),0)
          edgify = cv2.Canny(blur,50,150)
          return edgify
  
      def GetCopy(self,image):
          return np.copy(image) # do not use lane_image = image ( this does not create a copy but modifies origanl array)
  
      def GetGrayScale(self,image):
          return cv2.cvtColor(image,cv2.COLOR_RGB2GRAY)
  
      def ShowImage(self,image):
          plt.imshow(image)
          plt.show()
  
      def ReigonOfIntrest(self,image):
          traingle = np.array([(200,self.image_height),(1000,self.image_height),(550,400)])
          mask = np.zeros_like(image)
          cv2.fillPoly(mask,traingle,255)
          return mask
  
  p = ImageProcess(image)
  mask = p.ReigonOfIntrest(p.Preprocess(image))
  p.ShowImage(mask)
  </code></pre>
  <p>I tried <a href="https://stackoverflow.com/questions/11270250/what-does-the-python-interface-to-opencv2-fillpoly-want-as-input">This answer</a> here, but it did not help, please can you look into it.</p>