Skip to content

Detecção de mãos ​

Declarar a instância ​

Se acrescentares um bloco de Detecção de mãos(HandDetection) à área de trabalho, no código Python é inserida automaticamente a declaração de instância seguinte:

python
hand_detection = HandDetection(0)
# se existirem várias instâncias
hand_detection_1 = HandDetection(1)

Parâmetros ​

NomeTipoDescriçãoIntervalo / TipoValor predefinido
indexOpção de listaNúmero da instância (começa em 0)inteiro ≥ 00

Definir a câmara ​

Define a câmara para a deteção de mãos.

device

Parâmetros ​

NomeTipoDescriçãoIntervalo / TipoValor predefinido
unitOpção de listaNome do dispositivo de câmaraEtiqueta de câmara do sistema-

Python ​

python
hand_detection = HandDetection(0)

hand_detection.device('')

Carregar o modelo de mãos ​

Carrega o modelo de mãos treinado. Este passo é indispensável para usar as funções do módulo «Detecção de mãos».

load_model

Parâmetros ​

NomeTipoDescriçãoIntervalo / TipoValor predefinido
waitCaixa de verificaçãoAguardar que o carregamento termineTRUE / FALSETRUE

Python ​

python
hand_detection = HandDetection(0)

hand_detection.load_model(wait=True)

Definir o alvo ​

Determina se a deteção de mãos se baseia numa mão ou nas duas.

max_hands

Parâmetros ​

NomeTipoDescriçãoIntervalo / TipoValor predefinido
unitOpção de listaNúmero de mãosuma mão(one), as duas mãos(both)-

Python ​

python
hand_detection = HandDetection(0)

hand_detection.max_hands('one')
hand_detection.max_hands('both')

Detetar mão uma vez ​

Procura a mão na imagem atual e marca-a exatamente uma vez.

detect_once

Parâmetros ​

(nenhum)

Python ​

python
hand_detection = HandDetection(0)

hand_detection.detect_once()

Iniciar / parar a deteção contínua de mãos ​

Segue a mão na imagem atual continuamente e marca-a no ecrã.

detect_continuous

Parâmetros ​

NomeTipoDescriçãoIntervalo / TipoValor predefinido
unitOpção de listaAçãoiniciar(start), parar(stop)-

Python ​

python
hand_detection = HandDetection(0)

# unit = "start"
hand_detection.detect_continuous()
# unit = "stop"
hand_detection.stop()

Mostrar o resultado ​

Determina se o resultado da deteção de mãos é mostrado na imagem da câmara ou não.

display

Parâmetros ​

NomeTipoDescriçãoIntervalo / TipoValor predefinido
onOpção de listaVisualização ON / OFFmostrar(on=True), ocultar(off=False)TRUE

Python ​

python
hand_detection = HandDetection(0)

hand_detection.display(True)
hand_detection.display(False)

Posição das partes da mão ​

Devolve a posição da palma ou do pulso da mão indicada.

hand_data

Parâmetros ​

NomeTipoDescriçãoIntervalo / TipoValor predefinido
sideOpção de listaLado da mãoesquerda(left), direita(right)-
unitOpção de listaParte da mãopalma(palm), pulso(wrist)-
posOpção de listaTipo de coordenada / tamanhox, y-

Python ​

python
hand_detection = HandDetection(0)

hand_detection.hand('left', 'palm', 'x')
hand_detection.hand('right', 'wrist', 'y')
hand_detection.hand('left', 'hand', 'min_x')
hand_detection.hand('right', 'palm', 'width')

Posição das articulações dos dedos ​

Devolve as coordenadas das articulações do dedo indicado.

joint_data

Parâmetros ​

NomeTipoDescriçãoIntervalo / TipoValor predefinido
sideOpção de listaLado da mãoesquerda(left), direita(right)-
unitOpção de listaDedopolegar(thumb), índice(index), médio(middle), anelar(ring), mindinho(pinky)-
jointOpção de listaPosição da articulaçãoprimeira articulação(first), segunda articulação(second), terceira articulação(third), ponta do dedo(last)-
posOpção de listaCoordenadax, y-

Python ​

python
hand_detection = HandDetection(0)

hand_detection.finger('left', 'index', 'first', 'x')
hand_detection.finger('right', 'thumb', 'last', 'y')

Retângulo da mão ​

Devolve a posição e o tamanho do retângulo que envolve a zona da mão indicada.

hand_square

Parâmetros ​

NomeTipoDescriçãoIntervalo / TipoValor predefinido
sideOpção de listaLado da mãoesquerda(left), direita(right)-
unitOpção de listaParte da mãomão(hand), palma(palm)-
posOpção de listaDado do retânguloposição x mín.(min_x), posição x máx.(max_x), posição y mín.(min_y), posição y máx.(max_y), largura(width), altura(height), área(area)-

Python ​

python
hand_detection = HandDetection(0)

hand_detection.hand('left', 'hand', 'min_x')
hand_detection.hand('right', 'palm', 'width')

Distância entre mão e mão ​

Devolve a distância entre duas partes das mãos.

hand_to_hand_distance

Parâmetros ​

NomeTipoDescriçãoIntervalo / TipoValor predefinido
unit1Entrada (texto)Primeira parte da mãoMão: 'side_unit' (p. ex. 'left_palm'). side=left/right, unit=palm/wrist/hand-
unit2Entrada (texto)Segunda parte da mãoMão: 'side_unit' (p. ex. 'right_palm'). side=left/right, unit=palm/wrist/hand-
typeOpção de listaTipo de distânciadistância (omitido ou None), distância horizontal(horizontal), distância vertical(vertical)None

Python ​

python
hand_detection = HandDetection(0)

# mão ↔ mão / distância
hand_detection.get_distance('left_palm', 'right_palm')

Distância entre mão e dedo ​

Devolve a distância entre uma parte da mão e uma articulação de um dedo.

hand_to_joint_distance

Parâmetros ​

NomeTipoDescriçãoIntervalo / TipoValor predefinido
unit1Entrada (texto)Primeira parteMão: 'side_unit' (p. ex. 'left_palm'). side=left/right, unit=palm/wrist/hand-
unit2Entrada (texto)Segunda parteDedo: 'side_unit_joint' (p. ex. 'right_index_first'). unit=thumb/index/middle/ring/pinky, joint=first/second/third/last-
typeOpção de listaTipo de distânciadistância (omitido ou None), distância horizontal(horizontal), distância vertical(vertical)None

Python ​

python
hand_detection = HandDetection(0)

# mão ↔ articulação do dedo / distância horizontal
hand_detection.get_distance('left_palm', 'right_index_first')

Distância entre dedo e dedo ​

Devolve a distância entre duas articulações dos dedos.

joint_to_joint_distance

Parâmetros ​

NomeTipoDescriçãoIntervalo / TipoValor predefinido
unit1Entrada (texto)Primeira parteDedo: 'side_unit_joint' (p. ex. 'left_thumb_last'). unit=thumb/index/middle/ring/pinky, joint=first/second/third/last-
unit2Entrada (texto)Segunda parteDedo: 'side_unit_joint' (p. ex. 'right_index_first'). unit=thumb/index/middle/ring/pinky, joint=first/second/third/last-
typeOpção de listaTipo de distânciadistância (omitido ou None), distância horizontal(horizontal), distância vertical(vertical)None

Python ​

python
hand_detection = HandDetection(0)

# articulação do dedo ↔ articulação do dedo / distância vertical
hand_detection.get_distance('left_thumb_last', 'right_index_first', 'vertical')

Estado de carregamento do modelo de mãos ​

Devolve o estado de carregamento do modelo de mãos.
Se ainda não estiver carregado, devolve 0; durante o carregamento, 1; depois de carregado, 2.

model_state

Parâmetros ​

(nenhum)

Python ​

python
hand_detection = HandDetection(0)

hand_detection.model_state()

Mão detetada? ​

Se foi encontrada uma mão

detected

Parâmetros ​

(nenhum)

Python ​

python
hand_detection = HandDetection(0)

hand_detection.detected()