How to calcualte psnr of images of two different size?

5 views (last 30 days)
I am having one image 0f 500 * 500 size. I have resized it to 250 * 250. How to calculate psnr between two images?

Answers (1)

Image Analyst
Image Analyst on 3 Apr 2017
Call
p = psnr(image1, image2);
If they're different sizes, then resize one of them.
image2Resized = imresize(image2, size(image1), 'nearest');
p = psnr(image1, image2Resized );
  7 Comments
Image Analyst
Image Analyst on 25 Oct 2020
Each method will give a slightly different PSNR. Bicubic should be fine. Use others and compare them if you want.
Ozan Can Sahin
Ozan Can Sahin on 26 Oct 2020
I tried both PSNR and SSIM, it worked without errors but I've seen something that doesn't make sense. I've tried comparing Bicubic Interpolation and Nearest Neighbour Interpolation to see if PSNR and SSIM works properly, however I got better results for NN compared to bicubic which doesn't make sense. And this is valid for not only one single image but I've tried it with a few different images. You can see those in the screenshot attached, the code is on the left and the values are on the right. Any ideas why am I getting such results like this?

Sign in to comment.

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!