Как исправить зависание cv2.imshow (из opencv) в django

Для реализации выпадающего меню вы можете использовать угловой материал Использовать компонент автозаполнения для ui

Демо-шаблон

HTML

blockquote>
{{option}}

Теперь для поиска в массиве строки (в этом примере all[]) вы можете использовать эту логику

Здесь я Я использую регулярное выражение для соответствия любой подстроке этих строк в массиве

Тип машинописного текста

blockquote>
export class AppComponent  {
  myControl = new FormControl();
  options: string[] = [];
  data : any;
  constructor() {
  }

  public updated() {
    this.options = [];
    if (this.myControl.value.length > 0) {
      let all = ['John', 'Jenny', 'Jonson']
      let searchedWord = this.myControl.value
      for(let key in all) {
        let r = all[key].search(new RegExp(searchedWord, "i"));
        if (r != -1) {
          this.options.push(all[key])
        }
      }
    } else {
      this.options = []
    }
  }
}

Рабочий пример: stackblitz

1
задан Tevil 19 January 2019 в 21:15
поделиться

1 ответ

Попробуйте:

while True:
    frame = vs.read()
    cv2.imshow("Frame", frame)
    if cv2.waitKey(1) & 0xFF == ord("q"):
       break
cv2.destroyAllWindows()
vs.stop()

Честно говоря, я не совсем понимаю, что вы хотите сделать. Вы хотите ждать каждые 30 секунд, прежде чем делать еще одну фотографию? Кажется, ваш код прерывается в цикле и в условии if, и в состоянии else

РЕДАКТИРОВАТЬ: поток 30 с

2 Опция

1) для потока 30 с, вам нужно посчитать количество кадров в секунду и разрыв после достижения fps * 30 петель.

2) создать переменную флага и функцию тайм-аута

flag = 0 

def timeout(sleep):
    time.sleep(sleep)
    flag = 1

threading.Thread(target = timetout, args=(30,)).start()


# in your loop then break when 

if flag == 1:
    break
0
ответ дан Martin 19 January 2019 в 21:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: