есть способ подождать, пока что-то не произойдет (пока цикл) или подождите 10 секунд, прежде чем делать обнаружение круга, но все же показывая видео. я пробовал его с циклом while, но если условие не выполняется, кадры не будут отображаться, так как код не получает cvShow \ iamge().Обнаружение круга opencv с видео
ответ
Да, можно, но вам придется использовать потоки. Объявите глобальную переменную bool exec_circle_detection = false;
и запустите 2-й поток. В этой теме вызовите sleep(10)
, чтобы подождать 10 секунд, а затем измените exec_circle_detection
на true.
В основном потоке внутри цикла захвата кадров вы проверяете, установлена ли логическая переменная равным true, а в противном случае вы не будете обрабатывать фрейм. Эта часть будет выглядеть примерно так (в C):
char key = 0;
while (key != 27) // ESC
{
frame = cvQueryFrame(capture);
if (!frame)
{
fprintf(stderr, "!!! cvQueryFrame failed!\n");
break;
}
if (exec_circle_detection)
{
// execute custom processing
}
// Display processed frame
cvShowImage("result", frame);
// Exit when user press ESC
key = cvWaitKey(10);
}
Если вы планируете сделать обнаружение круга один раз каждые 10 секунд, вам нужно будет изменить exec_circle_detection
к ложным после выполнения пользовательской обработки. На вторичной нити отрегулируйте свой код так, чтобы цикл while
менялся exec_circle_detection
на true каждые 10 секунд.
Вы можете просто запустить обнаружение каждые X
кадров. Добавьте счетчик кадров в свой код, перезагрузитесь до 0, когда обнаружение будет выполнено, увеличьте один на каждый захваченный новый кадр и выполните обнаружение, когда счетчик равен 300
, учитывая, что ваше видео отображается на 30 fps
. Вы получите 10-секундную задержку между каждым обнаружением.
Что делать, если приложение должно работать с различными типами камер, а не только с одним? Более надежным решением является использование механизма синхронизации, как описано в моем ответе. – karlphillip
- 1. python opencv - обнаружение пятен или обнаружение круга
- 2. Обнаружение круга OpenCV Реализация C#
- 3. OpenCV: Обнаружение круга с использованием cvHoughCircle
- 4. Обнаружение открытого круга с Python/OpenCV
- 5. Python - OpenCV - Обнаружение круга с помощью HoughCircles
- 6. Обнаружение круга в приложении ios с OpenCV
- 7. Обнаружение круга без использования Aforge Or OpenCv
- 8. Обнаружение круга HoughCircles с использованием opencv и python-
- 9. Обнаружение круга определенного цвета (или уровня серого) с помощью openCV
- 10. Обнаружение цветного круга и его центра с помощью OpenCV
- 11. Обнаружение движущегося круга
- 12. Обнаружение круга - оценка надежности
- 13. Обнаружение рамки с OpenCV
- 14. Обнаружение видеозахвата OpenCV на большом размере видео
- 15. Обнаружение эллипса/круга на Бластомере
- 16. iPhone - обнаружение движения круга
- 17. Быстрое обнаружение столкновения круга
- 18. Обнаружение эллипса с OpenCV
- 19. Обнаружение стола с OpenCV
- 20. Перспективное обнаружение с OpenCv
- 21. Обнаружение воспроизведения видео в браузере с экрана - OpenCV
- 22. обнаружение лица и глаз из видео с использованием opencv
- 23. Обнаружение черной/пустой рамки в видео с использованием OpenCV
- 24. Обнаружение движения глаз в тепловом видео с использованием python opencv
- 25. opencv видео стабилизация алгоритм
- 26. Обнаружение цвета в opencv
- 27. Обнаружение перекрывающихся кругов в OpenCV
- 28. обнаружение и отслеживание face_eyes с использованием opencv
- 29. Обнаружение столкновений границы круга-прямоугольника
- 30. Стабилизация видео с OpenCV
Большое спасибо. я планирую сделать обнаружение круга, а затем хочу, чтобы программа ничего не делала, кроме показа видео в течение следующих десяти секунд. затем вернитесь к следующей строке кода. –
Удивительный, не стесняйтесь повышать свой ответ или выбирать его в качестве официального ответа на свой вопрос, нажав на флажок рядом с ним. Или обоим :) – karlphillip
Возможно, сложный вопрос. Я участвую в моем коде, который обнаруживает круги. я хочу, чтобы он посчитал 10 секунд и обнаружил круги и отобразил видео, не запускаясь в следующие строки кода ??? –