Sayem2603
Я попробовал ваше решение, и оно сработало для меня - спасибо!Я сделал несколько проб и ошибок и обнаружил, что циклы 4 раза помогли мне ... или отправили один и тот же код 4 раза точно так же ..
Далее я углубился в:
cv2.destroyAllWindows()
cv2.waitKey(1)
cv2.waitKey(1)
cv2.waitKey(1)
cv2.waitKey(1)
или просто вызов DestroyAllWindows и последующее циклическое выполнение кода waitKey () 4 раза:
cv2.destroyAllWindows()
for i in range (1,5):
cv2.waitKey(1)
Сработало также.Я не достаточно сообразителен, чтобы знать, почему это работает точно, хотя я предполагаю, что это как-то связано с прерыванием и задержкой, созданными зацикливанием этого кода (?)
Маттеус Брандл сказал выше, что третий waitKey) работал на него, так что, возможно, он немного отличается в каждой системе?(Я использую Linux Mint с ядром 3.16.1 и python 2.7)
Задержка, сама по себе, не объясняет этого, поскольку простое увеличение времени задержки в waitKey () не помогает.(Также зацикливание print ("Hello") 1000 раз вместо использования wiatKey () просто для того, чтобы увидеть, помогла ли созданная задержка - нет.) Должно быть что-то большее, как waitKey () взаимодействует с событиями окна.
Документы OpenCV говорят: "Эта функция - единственный метод в HighGUI, который может извлекать и обрабатывать события, поэтому его необходимо периодически вызывать для обычной обработки событий, если только HighGUI не используется в среде, которая заботится ообработка события. "
Возможно, он создает своего рода прерывание на дисплее графического интерфейса, которое позволяет обрабатывать действие destroyAllWindows ()?
J