Exemple #1
0
def main():
    original_img = Image.open('../../../../img/sky.jpg')

    # ---- do the octree method
    testimg_list = []
    for n_colors in range(1, 21):
        lab_array = quantize_color(original_img, n_colors)
        testimg_list.append(lab_array)

    # ---- get lab original array
    ori_arr = np.array(original_img)
    ori_arr_lab = skimage.color.rgb2lab(ori_arr)

    # ---- rescale original raster
    rescale_ori = (ori_arr_lab + [0, 128, 128]) / [100, 255, 255]

    # ---- compute VIF
    score_list = []
    for i in testimg_list:
        score = vifp_mscale(rescale_ori, i)
        score_list.append(score)

    # ---- save vif score to csv file
    csvfile = "lab_sky_vif.csv"
    with open(csvfile, "w") as output:
        writer = csv.writer(output, lineterminator='\n')
        for val in score_list:
            writer.writerow([val])
def vif_list(original, quantized_list):
    VIF_score_list = []
    for i in quantized_list:
        score = vifp_mscale(original, i)
        VIF_score_list.append(score)
    return VIF_score_list
Exemple #3
0
----- method: VIF
----- version 1.0 (VIF function written by Alex Izvorski)
----- https://github.com/aizvorski/video-quality/blob/master/vifp.py
"""

import numpy as np
from PIL import Image
import glob
import csv
from vif_function import vifp_mscale

# ---- obtain the original and quantized image arrays
temp_img = np.array(Image.open('../../../../img/sky.jpg'), 'f')
quantized_img_path_list = []
quantized_img_path_list = glob.glob(
    r'../../../img/sky/rgb_cs/quantized_img/*.png')
quantized_img_path_list.sort()

score_list = []
for i in quantized_img_path_list:
    quantized_img = np.array(Image.open(i), 'f')
    score = vifp_mscale(temp_img, quantized_img)
    score_list.append(score)
print(score_list)

# ---- save vif score to csv file
csvfile = "sky_vif.csv"
with open(csvfile, "w") as output:
    writer = csv.writer(output, lineterminator='\n')
    for val in score_list:
        writer.writerow([val])
    quantized_raster = np.reshape(
        palette[labels], (width, height, palette.shape[1]))

    # ---- rescale float to [0,1]
    rescale_quant = (quantized_raster + [0, 128, 128]) / [100, 255, 255]
    return rescale_quant

# ---- color themes with from 1-20 colors
n_colors_list = range(1,21)
testimg_list = []
for i in n_colors_list:
    result = quantize(lab_raster, i)
    testimg_list.append(result)

# ---- rescale original raster to [0,1]
rescale_ori= (lab_raster + [0, 128, 128]) / [100, 255, 255]

# ---- compute VIF
score_list = []
for i in testimg_list:
    score = vifp_mscale(rescale_ori,i)
    score_list.append(score)


# ---- save vif score to csv file
csvfile = "sky_vif_in_lab.csv"
with open(csvfile, "w") as output:
    writer = csv.writer(output, lineterminator='\n')
    for val in score_list:
        writer.writerow([val])