Untitled
unknown
plain_text
a year ago
3.4 kB
6
Indexable
import cv2 import numpy as np import random import os # Parametreler canvas_w, canvas_h = 1100, 600 nesne_boyutu, nesne_aralik = 80, 5 nesne_adedi_min, nesne_adedi_max = 6, 12 sure_min, sure_max = 60, 300 # saniye cinsinden hiz_seviyeleri = [1, 2, 3] # Hız seviyeleri # Emoji klasör yolu emoji_klasor = 'emojiler/' # Burada 'emojiler' klasör adınız olmalı # Arka plan rengini ayarla arka_plan_rengi = (211, 211, 211) # #D3D3D3 def load_emojis(emoji_klasor): emojiler = [] for dosya_adi in os.listdir(emoji_klasor): if dosya_adi.endswith('.png'): emoji_yolu = os.path.join(emoji_klasor, dosya_adi) img = cv2.imread(emoji_yolu, cv2.IMREAD_UNCHANGED) if img is not None and img.shape[2] == 4: emojiler.append(img) else: print(f"Yüklenemeyen dosya: {dosya_adi}") return emojiler def overlay_image(background, img, position): x, y = position h, w = img.shape[:2] # Arkaplanı geçerli piksel değerleriyle ayarlamak background_patch = background[y:y+h, x:x+w] # Arka plan yamasıyla aynı boyutlara sahip olan resim verilerini yeniden boyutlandırmak if background_patch.shape[0] != h or background_patch.shape[1] != w: return alpha_img = img[:, :, 3] / 255.0 alpha_bg = 1.0 - alpha_img for c in range(0, 3): background[y:y+h, x:x+w, c] = (alpha_img * img[:, :, c] + alpha_bg * background[y:y+h, x:x+w, c]) def yatay_kayan_nesneler(nesne_adedi, nesne_hiz_ayari, sure): # Emoji yükle emojiler = load_emojis(emoji_klasor) if not emojiler: print("Emoji resimleri yüklenemedi!") return # Hız ayarını hesapla hiz = 750 // (2 ** (nesne_hiz_ayari - 1)) # Nesne koordinatlarını ve hızlarını oluştur nesneler = [] for _ in range(nesne_adedi): emoji = random.choice(emojiler) x = random.randint(0, canvas_w - nesne_boyutu) y = random.randint(0, canvas_h - nesne_boyutu) nesneler.append({'emoji': emoji, 'x': x, 'y': y, 'hiz': hiz}) # Pencereyi oluştur cv2.namedWindow("Tracking", cv2.WINDOW_NORMAL) cv2.resizeWindow("Tracking", canvas_w, canvas_h) start_time = cv2.getTickCount() while True: # Arka planı ayarla frame = np.full((canvas_h, canvas_w, 3), arka_plan_rengi, dtype=np.uint8) # Nesneleri güncelle ve ekrana çiz for nesne in nesneler: emoji = nesne['emoji'] x, y = nesne['x'], nesne['y'] overlay_image(frame, emoji, (x, y)) nesne['x'] += nesne['hiz'] if nesne['x'] > canvas_w: nesne['x'] = -nesne_boyutu # Süreyi kontrol et elapsed_time = (cv2.getTickCount() - start_time) / cv2.getTickFrequency() if elapsed_time > sure: break cv2.imshow("Tracking", frame) if cv2.waitKey(1) & 0xFF == ord('q'): break cv2.destroyAllWindows() # Parametreler nesne_adedi = random.randint(nesne_adedi_min, nesne_adedi_max) nesne_hiz_ayari = random.choice(hiz_seviyeleri) sure = random.randint(sure_min, sure_max) yatay_kayan_nesneler(nesne_adedi, nesne_hiz_ayari, sure)
Editor is loading...
Leave a Comment