Erro ao detectar mãos para cima

Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #22192
    LpCoutinho
    Participante

    Ao rodar o código aparece o erro exibido mais a frente.

    Não consegui encontrar um link para visualizar os códigos no Google colab, fiz tudo a mão. Caso esse link esteja disponível por favor me envie para que possa comparar com as linhas que escrevi.

    Imaginei que o erro estaria no módulo e tentei modifica-lo sem sucesso alterando os parâmetros do punho direito que estão faltando e em desacordo com o padrão.

     

    O erro :

    ---------------------------------------------------------------------------
    TypeError Traceback (most recent call last)
    <ipython-input-16-a4bde24a5d56> in <module>
    67 
    68 # BRAÇOS
    ---> 69 if extrator_CORPO.verificar_bracos_ABAIXO(pontos[0:8]) == True: # [0:8] é a parte superior superior do corpo
    70 # 25% do movimento concluido
    71 valida_bracos_abaixo = 0.25
    
    ~\Desktop\VISÃO COMPUTACIONAL\Reconhecimento de Gestos e Ações com Python e OpenCV\modulos\extrator_CORPO.py in verificar_bracos_ABAIXO(pontos)
    83 # PUNHO DIREITO
    84 if indx == 4:
    ---> 85 punhoDireito_V = p[1]
    86 
    87 # OMBRO ESQUERDO
    
    TypeError: 'NoneType' object is not subscriptable
    #22193
    LpCoutinho
    Participante

    Tudo funciona perfeitamente, apenas quando chega no frame onde a pessoa levanta os pulsos que trava com o erro acima.

     

    Pode me ajudar?

    #22194
    Dalton Vargas
    Moderador

    Olá LpCoutinho!

    Este erro ocorre quando tentamos comparar um valor com nenhum valor (None).

    Para corrigir, ao invés de adicionar None na lista de pontos quando o ponto chave detectado não corresponde ao valor mínimo de confiança, pode substituir por (0,0) , ou seja, passamos o valor da posição do ponto sendo em 0 (zero) na horizontal e 0(zero) na vertical.

    Segue abaixo o ajuste:

    Na linha onde adicionamos os pontos chave a lista de pontos, na condição  else mudar para:

    else:
        pontos.append((0, 0)) 
    
    '''Depois de ajustado, fica assim:'''
    

    Despois de ajustado, fica assim:

    Fatos interessantes

    None não é o mesmo que False.

    None não é 0(zero).

    None não está vazio string.

    Comparando None com qualquer coisa sempre retornará False, exceto quando comparamos None a ele mesmo.

     

    Ah, também segue o link de acesso ao Colab: https://colab.research.google.com/drive/1Zsi5-8TQsNjm5hKAWBFyabTZ8yWYkCrS#scrollTo=SLAptHZtSeYA

     

    Espero ter ajudado, permaneço a disposição!

    • Esta resposta foi modificada 2 anos, 6 meses atrás por Dalton Vargas.
    • Esta resposta foi modificada 2 anos, 6 meses atrás por Dalton Vargas.
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Você deve fazer login para responder a este tópico.