lol
This commit is contained in:
67
chroma_key_green.py
Normal file
67
chroma_key_green.py
Normal file
@@ -0,0 +1,67 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Chroma Key Green Screen Removal
|
||||
Odstrani zeleno ozadje (#00FF00) in naredi transparentno
|
||||
"""
|
||||
|
||||
from PIL import Image
|
||||
import os
|
||||
|
||||
def remove_green_background(input_path, output_path, tolerance=30):
|
||||
"""
|
||||
Odstrani zeleno ozadje in naredi transparentno
|
||||
|
||||
Args:
|
||||
input_path: Pot do vhodne slike
|
||||
output_path: Pot do izhodne slike
|
||||
tolerance: Toleranca za zeleno barvo (0-255)
|
||||
"""
|
||||
print(f"Processing: {input_path}")
|
||||
|
||||
# Odpri sliko
|
||||
img = Image.open(input_path)
|
||||
img = img.convert("RGBA")
|
||||
|
||||
# Pridobi pixel podatke
|
||||
datas = img.getdata()
|
||||
|
||||
new_data = []
|
||||
for item in datas:
|
||||
# Preveri če je pixel zelen (#00FF00 oz. blizu)
|
||||
# Zelena je visoka, rdeča in modra sta nizki
|
||||
# Agresivnejša detekcija - če je zelena močnejša od rdečega in modrega
|
||||
if item[1] > 100 and (item[1] > item[0] + 50) and (item[1] > item[2] + 50):
|
||||
# Spremeni v transparentno
|
||||
new_data.append((255, 255, 255, 0))
|
||||
else:
|
||||
# Obdrži original
|
||||
new_data.append(item)
|
||||
|
||||
# Posodobi sliko
|
||||
img.putdata(new_data)
|
||||
|
||||
# Shrani
|
||||
img.save(output_path, "PNG")
|
||||
print(f"✓ Saved: {output_path}")
|
||||
|
||||
# Slike za obdelavo
|
||||
images = [
|
||||
("NOVE_SLIKE/UI/gauge_shattered.png", "NOVE_SLIKE/UI/gauge_shattered.png"),
|
||||
("NOVE_SLIKE/UI/vignette_bloody.png", "NOVE_SLIKE/UI/vignette_bloody.png"),
|
||||
("NOVE_SLIKE/UI/icon_photo.png", "NOVE_SLIKE/UI/icon_photo.png"),
|
||||
("NOVE_SLIKE/UI/icon_longboard.png", "NOVE_SLIKE/UI/icon_longboard.png"),
|
||||
]
|
||||
|
||||
print("=" * 60)
|
||||
print("CHROMA KEY - Odstranjevanje zelenega ozadja")
|
||||
print("=" * 60)
|
||||
|
||||
for input_img, output_img in images:
|
||||
if os.path.exists(input_img):
|
||||
remove_green_background(input_img, output_img, tolerance=50)
|
||||
else:
|
||||
print(f"✗ File not found: {input_img}")
|
||||
|
||||
print("\n" + "=" * 60)
|
||||
print("KONČANO! Vsa zelena ozadja so odstranjena.")
|
||||
print("=" * 60)
|
||||
Reference in New Issue
Block a user