# Tracking
A biblioteca **Tracking** é projetada para facilitar o rastreamento de caracterÃsticas do corpo em imagens com **Mediapipe**. Ela fornece uma estrutura organizada para manipular e acessar pontos de referência, bem como suas coordenadas em 2D e 3D.
## Instalação
Para instalar a biblioteca, utilize o seguinte comando:
```bash
pip install tracking
```
## Exemplos
Desenhando as mãos de uma imagem local
```python
import cv2
from tracking.hand_tracking import Tracking # Importando apenas o módulo de hand_tracking
# Carregando uma imagem
image = cv2.imread('path/to/image.jpg')
# Instanciando a classe de tracking
hand_tck = Tracking()
# Busca todas as mãos na imagem
hands = hand_tck.predict(cv2.cvtColor(image, cv2.COLOR_RGB2BGR))
for hand in hands:
hand.draw(image, (255, 0, 0)) # Desenha todas as mãos encontradas
cv2.imshow("Hand(s)", image) # Mostrar imagem
cv2.waitKey() # Esperar o usuario clicar alguma tecla
cv2.destroyAllWindows()
```
Desenhando cada dedo separadamente e detectando quais dedos estão levantados
```python
import cv2
import tracking as tck
# 1° parametro: Define o tamanho da tela
# 2° parametro: Define a webcam que será usada
# 3° parametro: Define quais tipos de tracking deve carregar os modulos
tck.init((1920, 1080), 0, flags=tck.type.HAND_TRACKING)
# Instancia a classe de tracking de mãos
hand_tck = tck.HandTracking(tck.running_mode.LIVE_STREAM, # running_mode = LIVE_STREAM para rastrear de forma assincrona
max_num_hands=2) # max_num_hands = 2 Para rastrear até duas mãos ao mesmo tempo
cap = tck.CONFIG.VIDEO_CAPTURE # Referencia para a webcam
# Enquanto webcam estiver aberta
while cap.isOpened:
# Obtem todas as mãos na camera (side_mirror=True se a imagem estiver invertida)
hands = hand_tck.predict(side_mirror=True)
# Ultimo frame que foi capturado
frame = cap.frame
for hand in hands:
for finger in tck.finger:
# Cor azul caso o dedo estiver levantado, senão, cor vermelha
color = (255, 0, 0) if hand.finger_is_raised(finger) else (0, 0, 255)
# Desenha apenas o dedo atual do loop
hand.draw(frame, color, palm=False, fingers=[finger])
# Mostra a imagem
cv2.imshow("WebCam", frame)
if cv2.waitKey(10) & 0xFF == 27: # Se apertar Esc
cap.close() # Fecha a webcam
cv2.destroyAllWindows() # Fecha a janela aberta pelo programa
```
## Autores
| ilunnie | marcoshrb |
| :---: | :---: |
| [![ilunnie](https://github.com/ilunnie.png?size=115)](https://github.com/ilunnie) | [![marcoshrb](https://github.com/marcoshrb.png?size=115)](https://github.com/marcoshrb) |
## Licença
[Apache-2.0](https://choosealicense.com/licenses/apache-2.0/)
Raw data
{
"_id": null,
"home_page": "https://github.com/ilunnie/tracking",
"name": "tracking-py",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "ilunnie & marcoshrb",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/9d/0d/f37c229c76aebfe60c51f8b75f4494616161a4c9ea322e0f35a628612e5b/tracking_py-1.1.1.tar.gz",
"platform": null,
"description": "\r\n# Tracking\r\n\r\nA biblioteca **Tracking** \u00c3\u00a9 projetada para facilitar o rastreamento de caracter\u00c3\u00adsticas do corpo em imagens com **Mediapipe**. Ela fornece uma estrutura organizada para manipular e acessar pontos de refer\u00c3\u00aancia, bem como suas coordenadas em 2D e 3D.\r\n\r\n\r\n\r\n## Instala\u00c3\u00a7\u00c3\u00a3o\r\n\r\nPara instalar a biblioteca, utilize o seguinte comando:\r\n\r\n```bash\r\n pip install tracking\r\n```\r\n \r\n## Exemplos\r\n\r\nDesenhando as m\u00c3\u00a3os de uma imagem local\r\n```python\r\nimport cv2\r\nfrom tracking.hand_tracking import Tracking # Importando apenas o m\u00c3\u00b3dulo de hand_tracking\r\n\r\n# Carregando uma imagem\r\nimage = cv2.imread('path/to/image.jpg')\r\n\r\n# Instanciando a classe de tracking\r\nhand_tck = Tracking()\r\n\r\n# Busca todas as m\u00c3\u00a3os na imagem\r\nhands = hand_tck.predict(cv2.cvtColor(image, cv2.COLOR_RGB2BGR))\r\nfor hand in hands:\r\n hand.draw(image, (255, 0, 0)) # Desenha todas as m\u00c3\u00a3os encontradas\r\n\r\ncv2.imshow(\"Hand(s)\", image) # Mostrar imagem\r\ncv2.waitKey() # Esperar o usuario clicar alguma tecla\r\ncv2.destroyAllWindows()\r\n```\r\n\r\nDesenhando cada dedo separadamente e detectando quais dedos est\u00c3\u00a3o levantados\r\n```python\r\nimport cv2\r\nimport tracking as tck\r\n\r\n# 1\u00c2\u00b0 parametro: Define o tamanho da tela\r\n# 2\u00c2\u00b0 parametro: Define a webcam que ser\u00c3\u00a1 usada\r\n# 3\u00c2\u00b0 parametro: Define quais tipos de tracking deve carregar os modulos\r\ntck.init((1920, 1080), 0, flags=tck.type.HAND_TRACKING)\r\n\r\n# Instancia a classe de tracking de m\u00c3\u00a3os\r\nhand_tck = tck.HandTracking(tck.running_mode.LIVE_STREAM, # running_mode = LIVE_STREAM para rastrear de forma assincrona\r\n max_num_hands=2) # max_num_hands = 2 Para rastrear at\u00c3\u00a9 duas m\u00c3\u00a3os ao mesmo tempo\r\ncap = tck.CONFIG.VIDEO_CAPTURE # Referencia para a webcam\r\n\r\n# Enquanto webcam estiver aberta\r\nwhile cap.isOpened:\r\n # Obtem todas as m\u00c3\u00a3os na camera (side_mirror=True se a imagem estiver invertida)\r\n hands = hand_tck.predict(side_mirror=True)\r\n\r\n # Ultimo frame que foi capturado\r\n frame = cap.frame\r\n\r\n for hand in hands:\r\n for finger in tck.finger:\r\n # Cor azul caso o dedo estiver levantado, sen\u00c3\u00a3o, cor vermelha\r\n color = (255, 0, 0) if hand.finger_is_raised(finger) else (0, 0, 255)\r\n # Desenha apenas o dedo atual do loop\r\n hand.draw(frame, color, palm=False, fingers=[finger])\r\n\r\n # Mostra a imagem\r\n cv2.imshow(\"WebCam\", frame)\r\n if cv2.waitKey(10) & 0xFF == 27: # Se apertar Esc\r\n cap.close() # Fecha a webcam\r\n\r\ncv2.destroyAllWindows() # Fecha a janela aberta pelo programa\r\n```\r\n\r\n\r\n## Autores\r\n\r\n| ilunnie | marcoshrb |\r\n| :---: | :---: |\r\n| [![ilunnie](https://github.com/ilunnie.png?size=115)](https://github.com/ilunnie) | [![marcoshrb](https://github.com/marcoshrb.png?size=115)](https://github.com/marcoshrb) |\r\n\r\n\r\n## Licen\u00c3\u00a7a\r\n\r\n[Apache-2.0](https://choosealicense.com/licenses/apache-2.0/)\r\n\r\n",
"bugtrack_url": null,
"license": null,
"summary": "Monitor a person's body with just a webcam",
"version": "1.1.1",
"project_urls": {
"Homepage": "https://github.com/ilunnie/tracking"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "1eb4543528acfff038e321f07582a288dad891bc594bb938989e8b646f8fa947",
"md5": "ca19d5ee204b9451ca032219350b1669",
"sha256": "1989734af0d7f0fa8aa523a66dd1364a72a7bb1b9ad967c700e37469a30f3231"
},
"downloads": -1,
"filename": "tracking_py-1.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ca19d5ee204b9451ca032219350b1669",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 9205712,
"upload_time": "2024-10-03T00:18:26",
"upload_time_iso_8601": "2024-10-03T00:18:26.534143Z",
"url": "https://files.pythonhosted.org/packages/1e/b4/543528acfff038e321f07582a288dad891bc594bb938989e8b646f8fa947/tracking_py-1.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9d0df37c229c76aebfe60c51f8b75f4494616161a4c9ea322e0f35a628612e5b",
"md5": "30b1ea47b8dcd8f8f601b02b698dfc1a",
"sha256": "30cc004e0b6a15032fcd8ea8d520ab7e618388d35633f125de1e4ea3878bd312"
},
"downloads": -1,
"filename": "tracking_py-1.1.1.tar.gz",
"has_sig": false,
"md5_digest": "30b1ea47b8dcd8f8f601b02b698dfc1a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9160880,
"upload_time": "2024-10-03T00:18:29",
"upload_time_iso_8601": "2024-10-03T00:18:29.779195Z",
"url": "https://files.pythonhosted.org/packages/9d/0d/f37c229c76aebfe60c51f8b75f4494616161a4c9ea322e0f35a628612e5b/tracking_py-1.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-03 00:18:29",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ilunnie",
"github_project": "tracking",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "tracking-py"
}