Ich weiß wirklich nichts über Python, ich habe diese Codes nur mit Chatgpt und meinem IQ-Effekt erstellt. Ich möchte fragen: Wie kann ich eine schnellere Warenkorbzähler-App erstellen? Ich habe das für das Pishti-Spiel gemacht. Es funktioniert, zählt, geht aber manchmal vorbei. Wie ich meinen Code verbessern kann oder welche Vorlagenübereinstimmung ich verwenden muss.
Meine Vorlagen sind identisch mit den Karten, die gezählt werden sollen. Gibt es einen besseren Rat als TM_CCOEFF_NORMED
Ich weiß wirklich nichts über Python, ich habe diese Codes nur mit Chatgpt und meinem IQ-Effekt erstellt. Ich möchte fragen: Wie kann ich eine schnellere Warenkorbzähler-App erstellen? Ich habe das für das Pishti-Spiel gemacht. Es funktioniert, zählt, geht aber manchmal vorbei. Wie ich meinen Code verbessern kann oder welche Vorlagenübereinstimmung ich verwenden muss. Meine Vorlagen sind identisch mit den Karten, die gezählt werden sollen. Gibt es einen besseren Rat als TM_CCOEFF_NORMED [code]import cv2 import numpy as np import tkinter as tk import threading import time import pyautogui from datetime import datetime, timedelta
card_counts = {card.split('_')[0]: 0 for card in card_templates.keys()}
card_last_seen = {card: None for card in card_templates.keys()} # Son görülen zaman
# HERE def capture_screen(region=None): if region: # Belirli bir bölgenin ekran görüntüsünü al screen = np.array(pyautogui.screenshot(region=region)) else: # Tüm ekranın görüntüsünü al screen = np.array(pyautogui.screenshot())
for card, template in card_templates.items(): result = cv2.matchTemplate(gray_screen, template, cv2.TM_CCOEFF_NORMED) threshold = 0.98 # Eşleşme oranı locations = np.where(result >= threshold)
for pt in zip(*locations[::-1]): if card not in detected_cards: detected_cards[card] = [] detected_cards[card].append(pt)
return detected_cards
def update_display(stop_event): global root, labels
root = tk.Tk() root.title("Kart Sayımı")
# Kart sayıları için etiketler labels = {} for i, card in enumerate(card_counts.keys()): label = tk.Label(root, text=f"{card}: {card_counts[card]}", font=('Helvetica', 14)) label.grid(row=i, column=0) labels[card] = label
def update(): if not stop_event.is_set(): sorted_cards = sorted(card_counts.items(), key=lambda x: (x[1] != 3, x[1] != 4, x[0])) for idx, (card, count) in enumerate(sorted_cards): color = 'red' if count == 3 else 'green' if count == 4 else 'black' labels[card].config(text=f"{card}: {count}", fg=color) labels[card].grid(row=idx, column=0) root.after(500, update) # 0.5 saniye sonra tekrar çalıştır
update() root.mainloop()
def track_cards(stop_event): global card_last_seen # card_last_seen değişkenini global olarak kullan last_reset_time = datetime.now()
while not stop_event.is_set(): region = (400, 0, 1000, 1000) screen = capture_screen(region=region)
detected_cards = detect_cards(screen) # Sayıları güncelle for card, locations in detected_cards.items(): card_number = card.split('_')[0]
# Eğer kart 100 saniye içinde sayılmadıysa if card_last_seen[card] is None or datetime.now() - card_last_seen[card] > timedelta(seconds=100): # Kart sayılabilir, sayımı artır card_counts[card_number] += 1 card_last_seen[card] = datetime.now() # Kartı saydık, son görülen zamanı güncelle
# Kart sayımlarını anlık olarak güncelle print(f"Detected cards: {detected_cards}") print(f"Card counts: {card_counts}")
# 0.1 saniye sonra tekrar çalıştır time.sleep(0.2)
def reset_gui(): global card_counts, card_last_seen
card_counts = {card.split('_')[0]: 0 for card in card_templates.keys()} card_last_seen = {card: None for card in card_templates.keys()}
for card in labels: labels[card].config(text=f"{card}: 0", fg='black')
Ich bin Anfänger mit Grundkenntnissen in Python (einige Projekte in der Vergangenheit) und folge jetzt
Tutorial für den OpenCV-Vorlagenabgleich.
Es funktioniert gut, ich habe die Bilder dafür...
Ich habe Basisplan für monatlich und jährlich mit 7 Tagen Angebot für beide, aber nur in monatlicher Darstellung nicht für jährlich. I.Sstatic.net/p1abtjfg.jpg />
Ich habe zwei Abonnementpläne: monatlich und jährlich, die beide ein 7-tägiges kostenloses Testangebot enthalten. Wenn Benutzer jedoch den jährlichen Plan auswählen, wird nur der Grundpreis angezeigt...
Ich habe gerade Integrationstests für jeden Endpunkt in meinem Controller geschrieben und bin mir jetzt nicht sicher, ob ich weitere Tests für die DAO-Klassen schreiben muss, die sie unterstützen....
Ich versuche, Ernie und Tokenizer unter Windows zu installieren, aber in beiden Fällen wird der folgende Fehler angezeigt:
ERROR: Command errored out with exit status 1:
command: 'c:\users\my...