Ejemplo n.º 1
0
def measure_UIQMs(dir_name, im_res=(256, 256)):
    paths = sorted(glob(join(dir_name, "*.*")))
    uqims = []
    for img_path in paths:
        im = Image.open(img_path).resize(im_res)
        uiqm = getUIQM(np.array(im))
        uqims.append(uiqm)
    return np.array(uqims)
Ejemplo n.º 2
0
def index_results(dist_filelist, ref_filelist):
    psnr_list = []
    ssim_list = []
    uiqm_list = []
    for dist_file in dist_filelist:  #遍历
        dist_file_dir = os.path.join(dist_path, dist_file)  #参考文件绝对路径

        if os.path.isdir(dist_file_dir):  #如果是文件夹,跳过
            continue

        dist_img = scipy.misc.imread(dist_file_dir,
                                     flatten=True).astype(numpy.float32)

        #filename = os.path.splitext(dist_file)[0] + os.path.splitext(dist_file)[1]  #ref filename
        filename = os.path.splitext(dist_file)[0] + '.jpg'  #ref filename

        ref_img = scipy.misc.imread(ref_path + '\\' + filename,
                                    flatten=True).astype(
                                        numpy.float32)  #读取参考图像对应的测试图像

        psnr_data = psnr.psnr(ref_img, dist_img)  #psnr指标
        ssim_data = ssim.ssim_exact(ref_img / 255, dist_img / 255)  #ssim指标

        dist_img = cv2.imread(dist_path + '\\' +
                              os.path.splitext(dist_file)[0] + '.jpg')  #UIQM指标
        uiqm_data = uqim_utils.getUIQM(dist_img)  #UIQM

        print("img:" + str(filename) + " psnr:" + str(psnr_data) + " ssim:" +
              str(ssim_data) + " UIQM:" + str(uiqm_data))
        data = str(filename) + " psnr:" + str(psnr_data) + " ssim:" + str(
            ssim_data) + " UIQM:" + str(uiqm_data)

        psnr_list.append(psnr_data)
        ssim_list.append(ssim_data)
        uiqm_list.append(uiqm_data)

    average = "psnr_average:" + str(
        sum(psnr_list) / len(psnr_list)) + " ssim_average:" + str(
            sum(ssim_list) / len(ssim_list)) + " UIQM:" + str(
                sum(uiqm_list) / len(uiqm_list))
    return average
Ejemplo n.º 3
0
    dist_img = scipy.misc.imread(dist_file_dir,
                                 flatten=True).astype(numpy.float32)

    #filename = os.path.splitext(dist_file)[0] + os.path.splitext(dist_file)[1]  #ref filename
    filename = os.path.splitext(dist_file)[0] + '.png'  #ref filename

    ref_img = scipy.misc.imread(ref_path + '\\' + filename,
                                flatten=True).astype(
                                    numpy.float32)  #读取参考图像对应的测试图像

    psnr_data = psnr.psnr(ref_img, dist_img)  #psnr指标
    ssim_data = ssim.ssim_exact(ref_img / 255, dist_img / 255)  #ssim指标

    dist_img = cv2.imread(dist_path + '\\' + os.path.splitext(dist_file)[0] +
                          '.png')  #UIQM指标
    uiqm_data = uqim_utils.getUIQM(dist_img)  #UIQM

    print("img:" + str(filename) + " psnr:" + str(psnr_data) + " ssim:" +
          str(ssim_data) + " UIQM:" + str(uiqm_data))
    data = str(filename) + " psnr:" + str(psnr_data) + " ssim:" + str(
        ssim_data) + " UIQM:" + str(uiqm_data)

    psnr_list.append(psnr_data)
    ssim_list.append(ssim_data)
    uiqm_list.append(uiqm_data)

    average = "psnr_average:" + str(
        sum(psnr_list) / len(psnr_list)) + " ssim_average:" + str(
            sum(ssim_list) / len(ssim_list)) + " UIQM:" + str(
                sum(uiqm_list) / len(uiqm_list))
    print(average)
import cv2
import uqim_utils

#img_path = r'D:\github\cv-paper-reproduction\PSNR_test\An Underwater Image Enhancement Benchmark Dataset and Beyond\result\4 Original Image.jpg'
#img_path = r'D:\github\cv-paper-reproduction\PSNR_test\InputImages\real1.jpg'
img_path = r'D:\github\video-quality\102_img_.png'
original = cv2.imread(img_path)
UQIM_value = uqim_utils.getUIQM(original)
print(round(UQIM_value,3))