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
----- 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])