Untitled
unknown
plain_text
a year ago
3.4 kB
9
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