estou com uma ideia gostaria de colocar em pratica porem ela nao funcionou bem , ela se resume a jogar um jogo apenas com webcam, o jogo é fortnite e o codigo seria esse aqui : import cv2 import mediapipe as mp import pyautogui # Função para suavizar a distância def smooth_distance(current, previous): if previous is None: return current return 0.7 * previous + 0.3 * current # Inicializar MediaPipe e suas soluções para detecção de mãos mp_hands = mp.solutions.hands mp_drawing = mp.solutions.drawing_utils # Configuração de captura de vídeo cap = cv2.VideoCapture(0) # Definir os parâmetros para detecção de mãos with mp_hands.Hands(max_num_hands=1, min_detection_confidence=0.8, min_tracking_confidence=0.8) as hands: while True: ret, frame = cap.read() if not ret: break # Converter o quadro de BGR para RGB frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) results = hands.process(frame_rgb) if results.multi_hand_landmarks: for hand_landmarks in results.multi_hand_landmarks: # Desenhar os pontos e as conexões da mão detectada mp_drawing.draw_landmarks(frame, hand_landmarks, mp_hands.HAND_CONNECTIONS) # Coordenadas dos pontos principais index_finger_tip = hand_landmarks.landmark[mp_hands.HandLandmark.INDEX_FINGER_TIP] middle_finger_tip = hand_landmarks.landmark[mp_hands.HandLandmark.MIDDLE_FINGER_TIP] ring_finger_tip = hand_landmarks.landmark[mp_hands.HandLandmark.RING_FINGER_TIP] pinky_tip = hand_landmarks.landmark[mp_hands.HandLandmark.PINKY_TIP] thumb_tip = hand_landmarks.landmark[mp_hands.HandLandmark.THUMB_TIP] # Converter coordenadas normalizadas para pixel h, w, _ = frame.shape index_finger_tip_pos = (int(index_finger_tip.x * w), int(index_finger_tip.y * h)) thumb_tip_pos = (int(thumb_tip.x * w), int(thumb_tip.y * h)) middle_finger_tip_pos = (int(middle_finger_tip.x * w), int(middle_finger_tip.y * h)) ring_finger_tip_pos = (int(ring_finger_tip.x * w), int(ring_finger_tip.y * h)) pinky_tip_pos = (int(pinky_tip.x * w), int(pinky_tip.y * h)) # Calcular distâncias entre os dedos dist_index_thumb = ((index_finger_tip_pos[0] - thumb_tip_pos[0]) ** 2 + (index_finger_tip_pos[1] - thumb_tip_pos[1]) ** 2) ** 0.5 # Suavizar as distâncias (não usado diretamente para o controle, mas pode ser útil para estabilidade) dist_index_thumb = smooth_distance(dist_index_thumb, dist_index_thumb) # Verificar o gesto para a tecla W if index_finger_tip.y < 0.4: pyautogui.press('w') cv2.putText(frame, "Move Forward (W)", (50, 100), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2, cv2.LINE_AA) # Verificar o gesto para a tecla S (símbolo de joia) if (middle_finger_tip.y < 0.5 and ring_finger_tip.y < 0.5 and pinky_tip.y < 0.5): pyautogui.press('s') cv2.putText(frame, "Move Backward (S)", (50, 150), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2, cv2.LINE_AA) # Verificar o gesto para a tecla A (dedo anelar estendido) if middle_finger_tip.y > 0.6 and ring_finger_tip.y > 0.6 and pinky_tip.y > 0.6: pyautogui.press('a') cv2.putText(frame, "Move Left (A)", (50, 200), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2, cv2.LINE_AA) # Verificar o gesto para a tecla D (quatro dedos escondendo o polegar) if thumb_tip.y > 0.6: pyautogui.press('d') cv2.putText(frame, "Move Right (D)", (50, 250), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2, cv2.LINE_AA) # Verificar o gesto para o espaço (mão fechada) if (index_finger_tip.y > 0.7 and middle_finger_tip.y > 0.7 and ring_finger_tip.y > 0.7 and pinky_tip.y > 0.7 and thumb_tip.y > 0.7): pyautogui.press('space') cv2.putText(frame, "Jump (Space)", (50, 300), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 255), 2, cv2.LINE_AA) # Verificar o gesto para controle do mouse (símbolo da amizade) if (index_finger_tip.y < 0.5 and middle_finger_tip.y < 0.5 and ring_finger_tip.y < 0.5 and pinky_tip.y < 0.5 and thumb_tip.y > 0.5): if pinky_tip.y < 0.5: pyautogui.click() # Clique esquerdo cv2.putText(frame, "Left Click", (50, 350), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2, cv2.LINE_AA) if thumb_tip.y < 0.5: pyautogui.rightClick() # Clique direito cv2.putText(frame, "Right Click", (50, 400), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2, cv2.LINE_AA) # Exibir a imagem com as anotações cv2.imshow('Gesture Control', frame) # Encerrar o loop se a tecla 'q' for pressionada if cv2.waitKey(1) & 0xFF == ord('q'): break # Liberar os recursos cap.release() cv2.destroyAllWindows()
import ctypes "que abrirá a porta do inferno...do baixo nível " kkkkkkkkkkkkkkkkkkk
É como o Vecna em stranger things rsrs
Vou maratonar seu canal, quero aprender a fazer bots para Android, você tem algum curso ou mentoria? Obrigado por todo conhecimento
Vlw!!
caramba estamos conectados mesmo eim , lembrei de voce nesse segundo
rsrs Como estão indo os estudos?
@@pyajudeme9245 lento , voce da aula particulares de python ?
estou com uma ideia gostaria de colocar em pratica porem ela nao funcionou bem , ela se resume a jogar um jogo apenas com webcam, o jogo é fortnite e o codigo seria esse aqui : import cv2
import mediapipe as mp
import pyautogui
# Função para suavizar a distância
def smooth_distance(current, previous):
if previous is None:
return current
return 0.7 * previous + 0.3 * current
# Inicializar MediaPipe e suas soluções para detecção de mãos
mp_hands = mp.solutions.hands
mp_drawing = mp.solutions.drawing_utils
# Configuração de captura de vídeo
cap = cv2.VideoCapture(0)
# Definir os parâmetros para detecção de mãos
with mp_hands.Hands(max_num_hands=1, min_detection_confidence=0.8, min_tracking_confidence=0.8) as hands:
while True:
ret, frame = cap.read()
if not ret:
break
# Converter o quadro de BGR para RGB
frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
results = hands.process(frame_rgb)
if results.multi_hand_landmarks:
for hand_landmarks in results.multi_hand_landmarks:
# Desenhar os pontos e as conexões da mão detectada
mp_drawing.draw_landmarks(frame, hand_landmarks, mp_hands.HAND_CONNECTIONS)
# Coordenadas dos pontos principais
index_finger_tip = hand_landmarks.landmark[mp_hands.HandLandmark.INDEX_FINGER_TIP]
middle_finger_tip = hand_landmarks.landmark[mp_hands.HandLandmark.MIDDLE_FINGER_TIP]
ring_finger_tip = hand_landmarks.landmark[mp_hands.HandLandmark.RING_FINGER_TIP]
pinky_tip = hand_landmarks.landmark[mp_hands.HandLandmark.PINKY_TIP]
thumb_tip = hand_landmarks.landmark[mp_hands.HandLandmark.THUMB_TIP]
# Converter coordenadas normalizadas para pixel
h, w, _ = frame.shape
index_finger_tip_pos = (int(index_finger_tip.x * w), int(index_finger_tip.y * h))
thumb_tip_pos = (int(thumb_tip.x * w), int(thumb_tip.y * h))
middle_finger_tip_pos = (int(middle_finger_tip.x * w), int(middle_finger_tip.y * h))
ring_finger_tip_pos = (int(ring_finger_tip.x * w), int(ring_finger_tip.y * h))
pinky_tip_pos = (int(pinky_tip.x * w), int(pinky_tip.y * h))
# Calcular distâncias entre os dedos
dist_index_thumb = ((index_finger_tip_pos[0] - thumb_tip_pos[0]) ** 2 +
(index_finger_tip_pos[1] - thumb_tip_pos[1]) ** 2) ** 0.5
# Suavizar as distâncias (não usado diretamente para o controle, mas pode ser útil para estabilidade)
dist_index_thumb = smooth_distance(dist_index_thumb, dist_index_thumb)
# Verificar o gesto para a tecla W
if index_finger_tip.y < 0.4:
pyautogui.press('w')
cv2.putText(frame, "Move Forward (W)", (50, 100), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2, cv2.LINE_AA)
# Verificar o gesto para a tecla S (símbolo de joia)
if (middle_finger_tip.y < 0.5 and
ring_finger_tip.y < 0.5 and
pinky_tip.y < 0.5):
pyautogui.press('s')
cv2.putText(frame, "Move Backward (S)", (50, 150), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2, cv2.LINE_AA)
# Verificar o gesto para a tecla A (dedo anelar estendido)
if middle_finger_tip.y > 0.6 and ring_finger_tip.y > 0.6 and pinky_tip.y > 0.6:
pyautogui.press('a')
cv2.putText(frame, "Move Left (A)", (50, 200), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2, cv2.LINE_AA)
# Verificar o gesto para a tecla D (quatro dedos escondendo o polegar)
if thumb_tip.y > 0.6:
pyautogui.press('d')
cv2.putText(frame, "Move Right (D)", (50, 250), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2, cv2.LINE_AA)
# Verificar o gesto para o espaço (mão fechada)
if (index_finger_tip.y > 0.7 and
middle_finger_tip.y > 0.7 and
ring_finger_tip.y > 0.7 and
pinky_tip.y > 0.7 and
thumb_tip.y > 0.7):
pyautogui.press('space')
cv2.putText(frame, "Jump (Space)", (50, 300), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 255), 2, cv2.LINE_AA)
# Verificar o gesto para controle do mouse (símbolo da amizade)
if (index_finger_tip.y < 0.5 and
middle_finger_tip.y < 0.5 and
ring_finger_tip.y < 0.5 and
pinky_tip.y < 0.5 and
thumb_tip.y > 0.5):
if pinky_tip.y < 0.5:
pyautogui.click() # Clique esquerdo
cv2.putText(frame, "Left Click", (50, 350), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2, cv2.LINE_AA)
if thumb_tip.y < 0.5:
pyautogui.rightClick() # Clique direito
cv2.putText(frame, "Right Click", (50, 400), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2, cv2.LINE_AA)
# Exibir a imagem com as anotações
cv2.imshow('Gesture Control', frame)
# Encerrar o loop se a tecla 'q' for pressionada
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# Liberar os recursos
cap.release()
cv2.destroyAllWindows()
Qual problema deu?
@@pyajudeme9245 algumas teclas nao funcionam direito , funciona apenas o space
É muito caro eu pedir sua ajuda para terminar de configurar um código para um bot de um jogo? Como posso entrar em contato?
Qual jogo? Tem contato no perfil
@@pyajudeme9245 Enviei um e-mail a vc.
Obrigado sensei. O que veio primeiro numpy ou python kkk
Ambos! rs Instalei NumPy e Pandas, felizmente, por coincidência, no meu primeiro dia de Python rs
Lendo de novo, saquei rsrs Galinha e ovo, 01010101 -> Assembly -> C -> Py -> Numpy