Reddit – computervision – Alternatywa dla imshow() + waitKey() do debugowania w czasie rzeczywistym w OpenCV
On 31 grudnia, 2021 by adminMinęło bardzo dużo czasu odkąd używam OpenCV, ale pamiętam, że używałem waitKey(1)
do wyświetlania naszych klatek w czasie rzeczywistym. Pojedyncze milisekundowe opóźnienia nie powinny robić znaczącej różnicy dla większości przetwarzania – nawet jeśli przetwarzasz z prędkością 100FPS, prawdopodobnie i tak chcesz tylko imshow co kilka klatek. Bez względu na wszystko, twój program musi przetwarzać zdarzenia, które zostały umieszczone w kolejce przez system operacyjny w pewnym momencie, aby odpowiedzieć na dane wejściowe. waitKey
jest sposobem OpenCV na zapewnienie, że to przetwarzanie zdarzeń będzie miało miejsce, nawet jeśli twoja aplikacja jest jednowątkowa. Jeśli nie poruszasz myszką, ilość zdarzeń do przetworzenia będzie trywialna. Alternatywnie, jeśli przejdziesz do Qt et. al., prawdopodobnie i tak będziesz chciał wykonać całe przetwarzanie wizji na osobnym wątku. A jeśli używasz wszystkich rdzeni do przetwarzania, będziesz musiał przełączać się kontekstowo do wątku obsługi zdarzeń dość często, jeśli nie chcesz, aby twój GUI zamarzł, więc ponosiłbyś takie same koszty, jak gdybyś używał waitKey. Zdecydowanie przejdź do Qt/wx, jeśli myślisz, że kiedykolwiek będziesz potrzebował jakiejś interaktywności, ale nie jest to lekarstwo na problem prędkości.
Dodaj komentarz