最近我一直在用 python 中的 openCV 跟踪基于轮廓的对象。我希望我的代码只绘制最大的轮廓(大于 20 像素)。
如果我在将球举到相机的同时启动程序,则代码有效,但是当我从视图中取出球时,程序崩溃并给我:
if cv2.contourArea(cnt[0]) > 20:
IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud)
有谁知道如何解决这个问题?
我的代码:
import cv2
import numpy as np
#Get current frame from camera
cap = cv2.VideoCapture(-1)
#Set size of said frame
cap.set(3, 160)
cap.set(4, 120)
while True:
_, frame = cap.read()
#Remove Noise and Grain
median = cv2.medianBlur(frame,5)
# Convert BGR to HSV
hsv = cv2.cvtColor(median, cv2.COLOR_BGR2HSV)
# define range of red color in HSV
lower_red = np.array([0,200,0])
upper_red = np.array([40,255,255])
# …Run Code Online (Sandbox Code Playgroud)