Как закрыть окно прогнозирования/обнаружения YOLOv8 через Python?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как закрыть окно прогнозирования/обнаружения YOLOv8 через Python?

Сообщение Anonymous »

Когда вы пытаетесь вручную закрыть окно, открытое через Python (я использую Visual Studio), окно закрывается на долю секунды, а затем открывается снова. CLI позволяет закрывать окно вручную, но я бы хотел избежать этого, чтобы позже я мог более широко использовать YOLO.
Пожалуйста, проявите ко мне некоторую снисходительность, поскольку я новичок в Python, и я знаю, что этот код будет плохим.
Изначально я пытался использовать цикл while со счетчиком, прежде чем использовать cv2, чтобы все закрыть:

Код: Выделить всё

from ultralytics import YOLO
import cv2

# run yolo predict window
model = YOLO("yolov8m.pt")
results = model.predict(source="0", show = True)

running  = True

while running:
k = k + 1
print(k)
# wait for enough time to have passed for the app to open
if k == 30000:
cv2.destroyAllWindows()

В конце концов я понял, что это не сработает, поскольку окно прогнозирования будет последовательно запускаться и не прекращаться, то есть оно не закроется, пока не будет закрыто (рекурсивно ...)
Итак, я пытался использовать модуль multiprocess, что в конечном итоге привело меня сюда:

Код: Выделить всё

from ultralytics import YOLO
import cv2
import multiprocessing
import multiprocessing.process

running = True

def camera():
model = YOLO("yolov8m.pt")
results = model.predict(source="0", show=True)

def counter():
k = 1
while running:
k = k + 1
print(k)
if k == 40000:
cv2.destroyAllWindows()
break

if __name__ == '__main__':

counterProcess = multiprocessing.Process(target=counter)
cameraProcess = multiprocessing.Process(target=camera)

counterProcess.start()
cameraProcess.start()

counterProcess.join()
cameraProcess.join()

Он успешно запускает обе программы, печатая числа до 40 000, но cv2.destroyAllWindows() не закрывает окно камеры. Почему?
Есть ли другая функция закрытия или она должна работать?

Подробнее здесь: https://stackoverflow.com/questions/788 ... via-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»