Запуск программы opencv в фоновом режиме без открытия окна cv прекращается мгновенно
Я запускаю программу opencv, чтобы получить координаты x и y из живого видео. Запуск программы в фоновом режиме без открытия какого-либо окна cv2, чтобы просто получить координаты, не работает, и программа мгновенно завершает работу. Когда я запускаю, открывая любое окно cv2, программа работает отлично.
1 ответ
Я бы второй ответ iGian. Пожалуйста, отправьте код.
Из того, что вы описали, я бы предположил, что ваши вычисления OpenCV каким-то образом выполняются в отдельном потоке, который не блокирует основной поток. Итак, что происходит:
- main thread -> start calculation thread
- main thread -> I'm finished, shut everything down including the calculation thread
Когда вы теперь делаете что-то вроде cv.imshow() и cv.waitkey() из вашего основного потока, это выглядит так:
- main thread -> start calculation thread
- main thread -> wait for a key to be pressed
- calculation thread -> keep calculating
- ...
- ...
- main thread -> "a key has been pressed"
- main thread -> I'm finished, shut everything down including the calculation thread
Но это довольно слепое предположение, так как нам нужен ваш код, чтобы увидеть, что на самом деле происходит. Решением вышеописанного сценария было бы заставить главный поток ждать, пока условие не будет выполнено - например, поток вычисления отправляет событие или записывает в переменную условия.