'AttributeError: 'numpy.ndarray' object has no attribute 'set'

when I write this code: (my entire code, school project on Augmented Reality) Everything worked perfectly until I tried to run the video. ...........................................................................................................................................................................................................

import cv2
import numpy as np

cap=cv2.VideoCapture(2)                                         
imgTarget=cv2.imread('F1racecars.jpeg')                         
vidTarget= cv2.VideoCapture('F1racecars.mp4')
               
success, vidTarget = vidTarget.read()                           
imgTarget=cv2.resize(imgTarget,(640,360))                       
hT, wT, cT = imgTarget.shape   
vidTarget=cv2.resize(vidTarget,(wT,hT))                        


orb = cv2.ORB_create(nfeatures=1000)
kp1, des1 = orb.detectAndCompute(imgTarget,None)

detect = False
fcount = 0


while True:                                                     
   success, imgWebcam= cap.read()                              
   imgAug = imgWebcam.copy()

   imgWarp = np.zeros((imgWebcam.shape[1], imgWebcam.shape[0],imgWebcam.shape[2]))
   masknew = np.zeros((imgWebcam.shape[0], imgWebcam.shape[1],imgWebcam.shape[2]), np.uint8)
   maskInv = np.zeros((imgWebcam.shape[0], imgWebcam.shape[1], imgWebcam.shape[2]), np.uint8)
   Mergecamfeed =  np.zeros((imgWebcam.shape[0], imgWebcam.shape[1], imgWebcam.shape[2]), np.uint8)
   ARfinal = np.zeros((imgWebcam.shape[0], imgWebcam.shape[1], imgWebcam.shape[2]), np.uint8)

   if detect is False:
      vidTarget.set(cv2.CAP_PROP_POS_FRAMES,0)
      fcount =0
   else:
      if fcount == vidTarget.get(cv2.CAP_PROP_FRAME_COUNT, 0):
         vidTarget.set(cv2.CAP_PROP_POS_FRAMES, 0)
         fcount = 0
   success, vidTarget= vidTarget.read()
   vidTarget= cv2.resize(vidTarget, (wT, hT))

   kp2, des2 = orb.detectAndCompute(imgWebcam,None)

   if des2 is None: print(False)
   else:
      bf = cv2.BFMatcher()
      featmatch = bf.knnMatch(des1,des2,k=2)
      good=[]
      for m,n in featmatch:
          if m.distance < 0.75 * n.distance: good.append(m)
      print(len(good))

      if len(good)>20:                                                                
         detect = True
         srcpts = np.float32([kp1[m.queryIdx].pt for m in good]).reshape(-1, 1, 2)
         dstpts = np.float32([kp2[m.trainIdx].pt for m in good]).reshape(-1, 1, 2)

         matrix, mask = cv2.findHomography(srcpts,dstpts, cv2.RANSAC, 5)
         print(matrix)

         pts = np.float32([[0,0],[0,360],[640,360],[640,0]]).reshape(-1, 1, 2)

         dst = cv2.perspectiveTransform(pts,matrix)
         cv2.polylines(imgWebcam,[np.int32(dst)],True,(255,0,255),3)

         imgWarp = cv2.warpPerspective(vidTarget,matrix, (imgWebcam.shape[1],imgWebcam.shape[0]))

         cv2.fillPoly(masknew, [np.int32(dst)], (255,255,255))

         maskInv = cv2.bitwise_not(masknew)

         Mergecamfeed = cv2.bitwise_and(imgAug,imgAug,None, mask = maskInv[:,:,0])
                                                                            
         ARfinal = cv2.bitwise_or(imgWarp, Mergecamfeed)                     


   cv2.imshow('imgTarget', imgTarget)
   cv2.imshow('imgTargetVdo', vidTarget)
   cv2.imshow('webcam', imgWebcam)
   cv2.imshow('warp', imgWarp)
   cv2.imshow('mask', masknew)
   cv2.imshow('Modified mask', maskInv)
   cv2.imshow('Aug Image', Mergecamfeed)
   cv2.imshow('Augmented Reality Final O/P', ARfinal)
   cv2.waitKey(1)
   fcount += 1

It shows like this:

AttributeError: 'numpy.ndarray' object has no attribute 'set'


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source