Yatayda Nesneler Kısa KOd
unknown
python
a year ago
2.4 kB
7
Indexable
import cv2 import numpy as np import time import random import os def nesne_ciz(canvas, pos, nesne_img, nesne_boyutu): """Nesneyi tuvale çizer ve PNG dosyasındaki alfa kanalını kullanarak transparan arka planı korur""" for c in range(3): canvas[pos[1] - nesne_boyutu//2:pos[1] + nesne_boyutu//2, pos[0] - nesne_boyutu//2:pos[0] + nesne_boyutu//2, c] = \ nesne_img[:, :, c] * (nesne_img[:, :, 3] / 255.0) + canvas[pos[1] - nesne_boyutu//2:pos[1] + nesne_boyutu//2, pos[0] - nesne_boyutu//2:pos[0] + nesne_boyutu//2, c] * (1.0 - nesne_img[:, :, 3] / 255.0) def acilan_nesne_yatay(n, v, t): """Nesneleri belirli aralıklarla yatay olarak ekrana yerleştirir ve gösterir""" n = max(6, min(n, 12)) t = max(60, min(t, 5 * 60)) v = max(1, min(v, 3)) hiz = 750 // (2 ** (v - 1)) canvas_w, canvas_h = 1100, 600 nesne_boyutu, nesne_aralik = 80, 5 nesne_set = nesne_boyutu + nesne_aralik nesne_dizin = "../Sprint_2/emojis/" nesne_listesi = [os.path.join(nesne_dizin, f) for f in os.listdir(nesne_dizin) if f.endswith('.png')] start_time = time.time() while time.time() - start_time < t: random_indices = random.sample(range(len(nesne_listesi)), n) for i in range(1, n + 1): canvas = np.ones((canvas_h, canvas_w, 3), dtype="uint8") * 255 rect_x1 = (canvas_w - ((nesne_set * n) - nesne_aralik)) // 2 rect_y1 = (canvas_h - nesne_set) // 2 cv2.rectangle(canvas, (rect_x1, rect_y1), (rect_x1 + (nesne_set * n) - nesne_aralik, rect_y1 + nesne_set), (220, 220, 220), -1) for j in range(i): pos = (rect_x1 + j * nesne_set + nesne_boyutu // 2, canvas_h // 2) nesne_img = cv2.imread(nesne_listesi[random_indices[j % len(nesne_listesi)]], cv2.IMREAD_UNCHANGED) nesne_img = cv2.resize(nesne_img, (nesne_boyutu, nesne_boyutu)) nesne_ciz(canvas, pos, nesne_img, nesne_boyutu) cv2.imshow("Nesne Takibi", canvas) if cv2.waitKey(hiz) & 0xFF == ord('q'): cv2.destroyAllWindows() return cv2.destroyAllWindows() # Fonksiyonu çağıralım acilan_nesne_yatay(n=6, v=1, t=60) acilan_nesne_yatay(n=10, v=2, t=60) acilan_nesne_yatay(n=12, v=3, t=60)
Editor is loading...
Leave a Comment