追蹤目標所需要用到的輪廓函數
hsv=cv2.cvtColor(frame,cv2.COLOR_BGR2HSV);
mask1=cv2.inRange(hsv,lowT,uppT)
cnts,_=cv2.findContours(np.copy(mask1),cv2.RETR_EXTERNAL,
cv2.CHAIN_APPROX_SIMPLE)
C=max(cnts,key=cv2.contourArea) #max()所有輪廓中取最大的
(x,y,w,h)=cv2.boundingRect(C);
img1=np.copy(imgb); cx=x+w//2; cy=y+h//2
cv2.rectangle(img1,(x,y),(x+w,y+h),(200,50,50),2)
cv2.circle(img1,(cx,cy),10,(255,55,55),-1)
cv2.imshow('img1',img1)
imgc=cv2.bitwise_and(imgb,imgb,mask=mask1)
maskc=cv2.cvtColor(mask1,cv2.COLOR_GRAY2BGR)
原始程式檔案