title: AttributeError: 'NoneType' object has no attribute 'copy'
body: <p>The full error is :</p>
  <pre><code>
      OpenCV: out device of bound (0-0): 1
      OpenCV: camera failed to properly initialize!
      Traceback (most recent call last):
        File &quot;/Users/syedrishad/PycharmProjects/OpenCVPython/venv/project1.py&quot;, line 60, in &lt;module&gt;
          imgResult = img.copy()
      AttributeError: 'NoneType' object has no attribute 'copy'
       ```
  
  </code></pre>
  <p>The full code is :</p>
  <pre><code>```import cv2
  import numpy as np
  
  frameWidth = 640
  frameHeight = 480
  cap = cv2.VideoCapture(1)
  cap.set(3, frameWidth)
  cap.set(4, frameHeight)
  cap.set(10, 150)
  
  myColors = [[78, 119, 70, 255, 97, 255],
              [63, 108, 44, 255, 0, 118],
              [0, 179, 69, 255, 100, 255],
              [90, 48, 0, 118, 255, 255]]
  myColorValues = [[51, 153, 255],  ## BGR
                   [255, 0, 255],
                   [0, 255, 0],
                   [255, 0, 0]]
  
  myPoints = []  ## [x , y , colorId ]
  
  
  def findColor(img, myColors, myColorValues):
      imgHSV = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
      count = 0
      newPoints = []
      for color in myColors:
          lower = np.array(color[0:3])
          upper = np.array(color[3:6])
          mask = cv2.inRange(imgHSV, lower, upper)
          x, y = getContours(mask)
          cv2.circle(imgResult, (x, y), 15, myColorValues[count], cv2.FILLED)
          if x != 0 and y != 0:
              newPoints.append([x, y, count])
          count += 1
          # cv2.imshow(str(color[0]),mask)
      return newPoints
  
  
  def getContours(img):
      contours, hierarchy = cv2.findContours(img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
      x, y, w, h = 0, 0, 0, 0
      for cnt in contours:
          area = cv2.contourArea(cnt)
          if area &gt; 500:
              # cv2.drawContours(imgResult, cnt, -1, (255, 0, 0), 3)
              peri = cv2.arcLength(cnt, True)
              approx = cv2.approxPolyDP(cnt, 0.02 * peri, True)
              x, y, w, h = cv2.boundingRect(approx)
      return x + w // 2, y
  
  
  def drawOnCanvas(myPoints, myColorValues):
      for point in myPoints:
          cv2.circle(imgResult, (point[0], point[1]), 10, myColorValues[point[2]], cv2.FILLED)
  
  
  while True:
      success, img = cap.read()
      imgResult = img.copy()
      newPoints = findColor(img, myColors, myColorValues)
      if len(newPoints) != 0:
          for newP in newPoints:
              myPoints.append(newP)
      if len(myPoints) != 0:
          drawOnCanvas(myPoints, myColorValues)
  
      cv2.imshow(&quot;Result&quot;, imgResult)
      if cv2.waitKey(1) and 0xFF == ord('q'):
          break ```
  </code></pre>
  <p>How do I fix this error? Any help would be gladly appreciated, I've been trying and failing to find an answer for a week now. I am not able to understand why it isn't working. I've looked at other examples of this error, but none of the solutions work.<br />
  Once again, thanks for your help.</p>