Пожалуйста, проявите ко мне некоторую снисходительность, поскольку я новичок в 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()
Есть ли другая функция закрытия или она должна работать?
Подробнее здесь: https://stackoverflow.com/questions/788 ... via-python