Вероятно, это поможет добавить обработку кода в ваш код. Например, после
cap = cv2.VideoCapture(0)
Попробуйте поставить что-то вроде этого:
if !cap.isOpened():
print("Error")
exit(1)
Затем, после
ret, frame = cap.read()
попытайтесь:
if !ret:
print("Error: frame not captured")
По крайней мере, это должно дать вам некоторые подсказки о том, где проблема.
Удачи
Андреас