title: Integer argument expected, got float error and float object cannot be interpreted as integer errors
body: <p>This is a code for virtual mouse using finger gestures. The above both errors are arising in the statements containing cv2.circle() and cv2.line(). I also tried using int(),round() and &quot;//&quot;, but it still won't work. After I use int() or round(), the second error arises. I hope you can help me with this.</p>
  <p>Thank you</p>
  <pre><code>import cv2
  import numpy as np
  from pynput.mouse import Button, Controller
  import wx
  mouse = Controller()
  
  app = wx.App(False)
  (sx,sy) = wx.GetDisplaySize()
  (camx,camy) = (320,240)
  
  lowerBound=np.array([20, 80, 100])
  upperBound=np.array([40,200,300])
  
  cam = cv2.VideoCapture(0)
  
  kernelOpen = np.ones((5,5))
  kernelClose = np.ones((20,20))
  pinchFlag = 0
  
  while True:
      ret, img = cam.read()
      img = cv2.resize(img,(340,220))
  
      #convert BGR to HSV
      imgHSV = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
      # create the Mask
      mask = cv2.inRange(imgHSV,lowerBound,upperBound)
      #morphology
      maskOpen = cv2.morphologyEx(mask,cv2.MORPH_OPEN,kernelOpen)
      maskClose = cv2.morphologyEx(maskOpen,cv2.MORPH_CLOSE,kernelClose)
  
      maskFinal = maskClose
      conts,h = cv2.findContours(maskFinal.copy(),cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)
  
      if(len(conts)==2):
          if(pinchFlag==1):
              pinchFlag = 0
              mouse.release(Button.left)
          x1,y1,w1,h1 = cv2.boundingRect(conts[0])
          x2,y2,w2,h2 = cv2.boundingRect(conts[1])
          cv2.rectangle(img,(x1,y1),(x1+w1,y1+h1),(255,0,0),2)
          cv2.rectangle(img,(x2,y2),(x2+w2,y2+h2),(255,0,0),2)
          cx1 = x1+w1/2
          cy1 = y1+h1/2
          cx2 = x2+w2/2
          cy2 = y2+h2/2
          cx = (cx1+cx2)/2
          cy = (cy1+cy2)/2
          cv2.line(img, (cx1,cy1),(cx2,cy2),(255,0,0),2)
          cv2.circle(img, (cx,cy),2,(0,0,255),2)
          mouseLoc = (sx-(cx*sx/camx), cy*sy/camy)
          mouse.position = mouseLoc
          while mouse.position != mouseLoc:
              pass
      elif(len(conts)==1):
          x,y,w,h = cv2.boundingRect(conts[0])
          if(pinchFlag==0):
              pinchFlag = 1
              mouse.press(Button.left)
          cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
          cx = x+w/2
          cy = y+h/2
          cv2.circle(img,(cx,cy),(w+h)/4,(0,0,255),2)
          mouseLoc = (sx-(cx*sx/camx), cy*sy/camy)
          mouse.position = mouseLoc
          while mouse.position != mouseLoc:
              pass
      cv2.imshow(&quot;cam&quot;,img)
      cv2.waitKey(5)
  </code></pre>
  <p>The error keeps changing.
  These are two of the errors.</p>
  <pre><code>Traceback (most recent call last):
    File &quot;C:/Users/Dell/PycharmProjects/virtualmouse/main.py&quot;, line 49, in &lt;module&gt;
      cv2.line(img, (cx1,cy1),(cx2,cy2),(255,0,0),2)
  TypeError: integer argument expected, got float
  [ WARN:0] global C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-pz4stnv8\opencv\modules\videoio\src\cap_msmf.cpp (435) `anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callback
  
  
  
  Traceback (most recent call last):
    File &quot;C:/Users/Dell/PycharmProjects/virtualmouse/main.py&quot;, line 63, in &lt;module&gt;
      cv2.circle(img,(cx,cy),(w+h)/4,(0,0,255),2)
  TypeError: integer argument expected, got float
  [ WARN:0] global C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-pz4stnv8\opencv\modules\videoio\src\cap_msmf.cpp (435) `anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callback
  </code></pre>