OpenCV写的程序报错,请求解读



```python
import numpy as up
import cv2 as cv

cap = cv.VideoCapture('C:\\Users\\86185\\Desktop\\12.15\\MAH02609')

ret,frame = cap.read()
r,h,c,w=197,141,0,208
win = (c,r,w,h)
roi = frame[r:r+h,c:c+w]

hsv_roi = cv.cvtColor(roi,cv.COLOR_BGR2HSV)
roi_hist = cv.calchist([hsv_roi],[0],None,[180],[0,180])
cv.normalize(roi_hist,roi_hist,0,255,cv,NORM_MINMAX)

term = (cv.TERM_CRITERIA_EPS|cv.TERM_CRITERIA_COUNT,10,1)

while(True):
    ret,frame = cap.read()
    if ret ==True:
        hst = cv.cvtColor(frame,cv.COLOR_BGR2HSV)
        dst = cv.calcBackProjest([hst],[0],roi_hist,[0,180])
        ret,win = cv.meanShift(dst,win,term)
        
        x,y,w,h = win
        img2 = cv.rectangle(frame,(x,y),(x+w,y+h),255,2)
        cv.imshow("frame",img2)
        if cv.waitkey(60)&0xFF ==ord('q'):
            break
            
cap.release()
cv.destroyAllWindows()



报错:
TypeError                                 Traceback (most recent call last)
<ipython-input-1-a694586b6da1> in <module>()
      7 r,h,c,w=197,141,0,208
      8 win = (c,r,w,h)
----> 9 roi = frame[r:r+h,c:c+w]
     10 
     11 hsv_roi = cv.cvtColor(roi,cv.COLOR_BGR2HSV)

TypeError: 'NoneType' object is not subscriptable

估计是数据溢出了。
ROI 未作溢出处理,如果 r+h, c+w 大于读取视频图像的宽度和高度,就会出错。
参见:https://blog.csdn.net/youcans/article/details/121234811(不是这个问题,但原理类似

    x,y = 300,50  # 叠放位置
    W1, H1 = imgL.shape[1::-1]  # 大图尺寸
    W2, H2 = imgS.shape[1::-1]  # 小图尺寸
    if (x + W2) > W1: x = W1 - W2  # 调整图像叠放位置,避免溢出
    if (y + H2) > H1: y = H1 - H2