Detecção ao entrar no ROI

Home Fóruns Fórum Rastreamento de Objetos com Python e OpenCV Detecção ao entrar no ROI

Visualizando 5 posts - 1 até 5 (de 5 do total)
  • Autor
    Posts
  • #19172
    Jones Granatyr
    Moderador

      Em um projeto de um veiculo sobre trilhos, o qual eu quero identificar quando um pedestre passa na frente dos trilhos, eu consigo criar um ROI fixo de uma determinada área (visto que esta sobre trilhos eu poderia manter fixo) e se alguem entrar nessa área eu ter uma ação? Fiquei com dúvida se é possivel pré definir o ROI sem ter que abrir o video e selecionar com o mouse

      #19181
      Dalton Vargas
      Moderador

        Olá Guilherme!

        Sim, você pode deixar o ROI estático, apenas inicializando a variável bbox nas posições de x, y, l, a da área de interesse na imagem que você definiu.

        Segue exemplo:

        bbox = (287, 23, 86, 320)

        Espero ter ajudado, fico a disposição!

        #19225
        Jones Granatyr
        Moderador

          Olá,

          Selecionando essa região de interesse é possivel tomar alguma ação caso algum objeto entre nela? Ou a região de interesse seria mais para especificar o que deve ser rastreado?

          #19226
          Dalton Vargas
          Moderador

            Sim, na verdade é possível fazer as duas coisas que você mencionou.

            • A resposta anterior é sobre inicializar o rastreamento passando uma posição pré-definida, sem precisar selecionar com o mouse, conforme você havia questionado;
            • Sobre especificar a ROI para “executar alguma ação caso algum objeto entre nela”, por exemplo, usar a detecção de uma pessoa somente em determinada área do vídeo, funciona assim:
              • Dentro da estrutura de repetição while, após inicializar a captura do vídeo (ret, frame = cap.read()), você pode definir a ROI assim:
                • roi = frame[100:300, 400:600]
              • Também pode desenhar um retângulo para marcar as posições da ROI:
                • cv2.rectangle(frame, (400, 100), (600, 300), (158, 158, 158), 1)
              • Ai é só passar a variável roi como parâmetro para o detector de objetos, segue exemplo:
                • deteccao = fullbody_cascade.detectMultiScale(roi, 1.08, 1, minSize=(80,80))
            • Esta resposta foi modificada 3 anos, 8 meses atrás por Dalton Vargas.
            #19248
            Jones Granatyr
            Moderador

              Excelente, muito obrigado! Vou tentar!

            Visualizando 5 posts - 1 até 5 (de 5 do total)
            • Você deve fazer login para responder a este tópico.