44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Ultra-Aggressive Green Screen Removal
|
|
Odstrani VSE zelenkaste piksle
|
|
"""
|
|
|
|
from PIL import Image
|
|
import numpy as np
|
|
|
|
def ultra_remove_green(input_path, output_path):
|
|
"""
|
|
Ultra aggressive green removal
|
|
"""
|
|
print(f"Ultra processing: {input_path}")
|
|
|
|
# Odpri sliko
|
|
img = Image.open(input_path)
|
|
img = img.convert("RGBA")
|
|
|
|
# Pretvori v numpy array za hitrejšo obdelavo
|
|
data = np.array(img)
|
|
|
|
# Ekstrahiraj kanale
|
|
r, g, b, a = data[:,:,0], data[:,:,1], data[:,:,2], data[:,:,3]
|
|
|
|
# Najdi vse piksle kjer je zelena dominantna
|
|
# Zelena mora biti močnejša od rdečega IN modrega
|
|
green_mask = (g > 80) & (g > r + 30) & (g > b + 30)
|
|
|
|
# Nastavi alfa kanal na 0 za zelene piksle
|
|
data[green_mask, 3] = 0
|
|
|
|
# Pretvori nazaj v sliko
|
|
result = Image.fromarray(data, 'RGBA')
|
|
|
|
# Shrani
|
|
result.save(output_path, "PNG")
|
|
print(f"✓ Ultra cleaned: {output_path}")
|
|
|
|
# Samo vignetta potrebuje ultra čiščenje
|
|
ultra_remove_green("NOVE_SLIKE/UI/vignette_bloody.png", "NOVE_SLIKE/UI/vignette_bloody.png")
|
|
|
|
print("\n✓ VIGNETTA ULTRA CLEANED!")
|