Quality = 80 %
Quality = 100 %

 

# ===== 방법-1 =====

import cv2
img1 = cv2.imread('input.jpg')
img2 = cv2.imread('input_80p.jpg')
psnr = cv2.PSNR(img1, img2)
print(f"PSNR: {psnr}")


#%%
# ===== 방법-2 =====

import cv2
import numpy as np

def calculate_metrics(original_image_path, compressed_image_path):
    # 원본 이미지와 압축된 이미지 불러오기
    original_image = cv2.imread(original_image_path)
    compressed_image = cv2.imread(compressed_image_path)
    
    # 이미지가 같은 크기인지 확인
    if original_image.shape != compressed_image.shape:
        print("이미지 크기가 다릅니다.")
        return
    
    # MSE 계산
    mse = np.mean((original_image - compressed_image) ** 2)
    
    # RMSE 계산
    rmse = np.sqrt(mse)
    
    # PSNR 계산
    max_pixel_value = 255.0
    psnr = 20 * np.log10(max_pixel_value / rmse)
    
    return mse, rmse, psnr

# 원본 이미지 경로와 압축된 이미지 경로 설정
original_image_path = "input.jpg"
compressed_image_path = "input_80p.jpg"

# 이미지 품질 측정 메트릭 계산
mse, rmse, psnr = calculate_metrics(original_image_path, compressed_image_path)

# 결과 출력
print("")
print(f"MSE: {mse}")
print(f"RMSE: {rmse}")
print(f"PSNR: {psnr}")
print("")

'Python > Image Super Resolution' 카테고리의 다른 글

이미지 파일을 n배로 저장하는 방법  (0) 2024.03.30

to Top