from PIL import Image 

# Nova vrednost piksela racuna se prema formuli: 255 * (p / 255)^alpha
def gama_modifikacija(p, alpha):
    max_p = 255
    scaled_p = p/max_p
    return max_p * pow(scaled_p, alpha)

def gama_modifikacija03(p):
    return gama_modifikacija(p, 0.3)

def gama_modifikacija05(p):
    return gama_modifikacija(p, 0.5)

def gama_modifikacija3(p):
    return gama_modifikacija(p, 3)

def gama_modifikacija10(p):
    return gama_modifikacija(p, 10)

PATH = "/home/cugur/Downloads/matf/dozs/2024/week4/data/jagoda_003.jpg"
with Image.open(PATH) as img:

    img.show()

    # Gamma korekcija
    img1 = img.point(gama_modifikacija03)
    img1.show()
    
    # Gamma korekcija
    img1 = img.point(gama_modifikacija05)
    img1.show()

    # Gamma korekcija
    img1 = img.point(gama_modifikacija3)
    img1.show()

    # Gamma korekcija
    img1 = img.point(gama_modifikacija10)
    img1.show()

PATH = "/home/cugur/Downloads/matf/dozs/2024/week4/data/yugo.jpg"
with Image.open(PATH) as img:

    img.show()

    # Gamma korekcija
    img1 = img.point(gama_modifikacija03)
    img1.show()
    
    # Gamma korekcija
    img1 = img.point(gama_modifikacija05)
    img1.show()

    # Gamma korekcija
    img1 = img.point(gama_modifikacija3)
    img1.show()

    # Gamma korekcija
    img1 = img.point(gama_modifikacija10)
    img1.show()

    # Domaci: odaditi gamma korekcije sa parametrima 0.1, 0.7, 2.0, 15.0 na slici muva.jpg.